甘ちゃんSEの自己変革ブログ

1度もサービスを作ったことのない甘ちゃんがこのブログを通じて勉強したことや作ったものを自己発信していきます。

C言語 構造体配列の要素数を取得する方法

構造体配列の要素数を定義の時点で固定にしていない状況で
素数を取得する必要が出た場合、
1.「sizeof 構造体変数名」で構造体配列全体のサイズを、
2.「sizeof struct タグ名」で1要素あたりのサイズを取得し、
1を2で割ることで要素数を算出すればいいと。
なるほど。

(( sizeof 構造体変数名 ) / ( sizeof ( struct タグ名 ) ) )
#include 

#define LIST_NUMBER ((sizeof namelist)/(sizeof(struct namelist_st)))

struct namelist_st {
    int  order;     // No.
    char name[24];  // 名前
};

main()
{
    struct namelist_st namelist[] = { 
          { 1, "田中 太郎" },
          { 2, "佐藤 次郎" },
          { 3, "黒田 三郎" },
          { 4, "鈴木 佳美" }
    }

    printf( "名簿数は %d\n", LIST_NUMBER); /* 名簿数は4 */
}