c
1int array[] = {1,2,3,4,5};
このような配列の要素数を求める場合、
c
1sizeof(array)/sizeof(array[0])
のようにsizeof関数を使えばよいと思いますが、
c
1typedef struct{ 2 char name[64]; //名前 3 int age; //年齢 4 int sex; //性別 5} profile; 6 7/////////////////////////////////////////// 8/////////////////////////////////////////// 9 10int datasize = 10; 11profile *data; 12data = (profile *)malloc(sizeof(profile)*datasize); 13 14profile_scan(data); //data[0]から順に名前、年齢、性別を入力させる関数 3人のデータを入力したと仮定します。
このように作った構造体の配列に対して、
c
1sizeof(data) /sizeof(data[0])
の結果が3にならないのはどうしてでしょうか?
sizeof(array)のarrayは配列arrayの最初の要素のアドレスを表すポインタなので、同様に使えるかと思いました。
回答2件
あなたの回答
tips
プレビュー