構造体を使ったプログラムで、構造体のデータを配列全部を渡すのか、 配列の1つを渡すのか…の違いが判らずに混乱している人がいるので、 簡単なサンプルプログラムを示す。
// 構造体のサンプル struct A { int data ; } ; // 構造体の全部を渡す場合 void foo( struct A* p ) { // struct A p[] // 引数宣言は上のように書いても同じ。 for( int i = 0 ; i < 100 ; i++ ) { p[i].data = ... ; // 上の1行は下の2つでも同じ意味 // (*(p+i)).data = ... ; // (p+i)->data = ... ; } } // 構造体の1件を渡す場合 void baa( struct A* p ) { p->data .... } void main() { // 局所的な配列 struct A a[100] ; // 配列全体を渡す(a[]の先頭アドレス) foo( a ) ; // 配列のi番目を渡す for( int i = 0 ; i < 100 ; i++ ) { bar( &a[i] ) ; } }