重複の可能性:
C プログラミング言語の配列のサイズ?
私のメイン関数には、次のコードがあります。
struct student s1 = {"zack",0,0,82};
struct student s2 = {"bob",0,0,80};
struct student s3 = {"joe",0,0,97};
struct student s4 = {"bill",0,0,100};
struct student c[] = {s1,s2,s3,s4};
printf("%d\n\n", arrayLengths(c));
printf("%d\n\n", sizeof(c)/sizeof(c[0]));
arrayLength は次のように定義されます。
int arrayLengths(struct student g[]) {
return sizeof(g)/sizeof(g[0]);
}
重複したコードを使用すると、2 つの異なる結果が得られます。私のコンソール出力は次のとおりです。
0
4
何を与える?なぜそうなのか、どうすればこれを独自の機能に入れることができますか?