#navi(../)
* C言語で配列の要素数を算出するサンプルソース [#r2be6cef]
配列の要素数をsizeofを使って算出するサンプルソースを以下に記します。
#contents
#htmlinsertpcsp(c-top.html,c-sp.html)
* sizeofを使う理由 [#ueb2b4d1]
要素数をプログラム上に数値で記述するのも可能だが、Cソース修正時に配列要素の追加や削除を行った場合、~
要素数を指定している部分の修正も必要となります。~
もちろん、defineにて要素数を指定する方法もありますが、要素部分の修正とdefineの値の修正の2箇所の修正が必要となります。~
そこで、sizeofを使って配列の要素数を算出するようにすれば、修正箇所は配列の要素変更のみで終わるようになります。~
以下にCサンプルソースを記します。
&ref(arycnt.c); (改行コードLF)
#include <stdio.h>
int main(void)
{
int int_ary[] = {1, 2, 3, 4, 5};
char *pchar_ary[] = {"linux", "windows", "bsd"};
printf("int_ary count : %d\n", sizeof(int_ary) / sizeof(int_ary[0]));
printf("pchar_ary count : %d\n", sizeof(pchar_ary) / sizeof(pchar_ary[0]));
return 0;
}
ソースコードのsizeofを見るとわかるように、全体のサイズを1要素のサイズで割ることにより配列の要素数を算出しています。~
以下にコンパイルし実行した結果を記します。
$ gcc arycnt.c -o arycnt
$ ./arycnt
int_ary count : 5
pchar_ary count : 3
以上、C言語で配列の要素数を調べる方法でした。
#htmlinsertpcsp(c-btm.html,c-sp.html)