[PR]

『新妻LOVELY×CATION』を応援しています!

配列の要素数を計算する

戻る

 配列の要素数を計算するマクロを作る。
#define numof(array) ( sizeof( array ) / sizeof( array[ 0 ] ) )

 配列の要素数を計算するためには sizeof 演算子を使う。
 ある配列 array に対して、
  sizeof( array ) の計算結果は、配列 array 全体の大きさになる。
  sizeof( array[0] ) の計算結果は、配列 array の要素1個分の大きさになる。
  ( sizeof(array) / sizeof(array[0]) ) の計算結果は、配列 array の要素数になる。


使用例

#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

Google
ご意見・ご感想をお聞かせ下さい。匿名で送信できます。

 * 返信が必要な場合には postmaster@katsura-kotonoha.sakura.ne.jp へ直接メールしてください。

水無瀬 優 postmaster@katsura-kotonoha.sakura.ne.jp
『新妻LOVELY×CATION』を応援しています!