私はこのコードを持っています:
typedef struct
{
int a[4];
} ArrStruct;
void printSizeOfArray(ArrStruct arrStruct)
{
printf("%lu\n", sizeof(arrStruct.a));
++(arrStruct.a[2]);
}
int main()
{
int it;
ArrStruct arrStruct;
printSizeOfArray(arrStruct);
for (it = 0 ; it < sizeof(arrStruct.a)/sizeof(int); ++it)
{
printf("%d, ", arrStruct .a[it]);
}
return 0;
}
この次のコードと比較して、ランタイム/メモリ パフォーマンスが良くないという人がいます。違いはなんですか?
void printSizeOfArray(int a[])
{
printf("%lu\n", sizeof(a));
++(a[2]);
}
int main()
{
int it;
int a[4] = {0};
printSizeOfArray(a);
for (it = 0 ; it < sizeof(a)/sizeof(int) ; ++it)
{
printf("%d, ", a[it]);
}
return 0;
}
2 番目のコードの方がパフォーマンスが優れているのはなぜですか?