#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)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS