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 */ }