私は C を学んでおり、ベスト プラクティスについて質問したいと思います。
ここに 2 つの実装 (シャツは構造体):
実装 1 :
void printShirt(shirt shirt){
printf("(%d , %s)",shirt.size,shirt.color);
}
void printShirts(shirt * shirts, int nbShirts){
int i;
for(i=0;i<nbShirts;i++) printShirt(shirts[i]);
printf("\n");
}
実装 2:
void printShirt(shirt * shirt){
printf("(%d , %s)",shirt->size,shirt->color);
}
void printShirts(shirt * shirts, int nbShirts){
int i;
for(i=0;i<nbShirts;i++) printShirt(&shirts[i]);
printf("\n");
}
私が正しければ (?)、実装 1 では、印刷前に各シャツのデータがヒープからスタックにコピーされます。しかし、これは実装 2 (?) では発生しません。
大きな配列と構造の場合、これは影響を与える可能性がありますか? 従うべきベストプラクティスはありますか?