配列の要素数を計算するマクロを作る。
配列の要素数を計算するためには sizeof 演算子を使う。 使用例#define numof(array) (sizeof(array)/sizeof(array[0])) //********************************************************* // sizeof 演算子を使って配列の要素数を計算する。 //********************************************************* int main( void ) { short dog[101]; printf( "sizeof(dog) = %u, sizeof(dog[0]) = %u\n", sizeof(dog), sizeof(dog[0]) ); printf( "There are %u dogs.\n", numof(dog) ); sizeof_pointer( dog, dog, dog ); return 0; }//main //********************************************************* // ポインタからは配列の要素数を計算することができないことを確認する。 //********************************************************* void sizeof_pointer( short *a, short b[], short c[101] ) { // ポインタの指す配列の要素数をポインタから計算することはできない printf( "sizeof(a) = %u, sizeof(b) = %u, sizeof(c) = %u\n", sizeof(a), sizeof(b), sizeof(c) ); }//main 実行結果sizeof(dog) = 202, sizeof(dog[0]) = 2 There are 101 dogs. sizeof(a) = 4, sizeof(b) = 4, sizeof(c) = 4 | |