C言語:配列の要素数を出力する方法

2018年5月16日

C言語で配列の要素数を知りたい場合、要素数を出力する関数がないため、配列の要素全体の大きさと配列要素1つ分の大きさを求めて要素数を導く必要があります。

コード

6,7行目でsizeofの前に(int)を付けているのは、コンパイル時に

warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long unsigned int’ [-Wformat=]

という警告が出るためです。そのため、%dを%zu(size_t型)にするか、intでキャストするなどの処置が必要です。

出力結果

Entire list size is 32 bytes.
First element size is 8 bytes.
Entire elements are 4.

配列全体のサイズは32バイトで、それぞれの要素は8バイトとなっているため、要素数は4と分かります。