0

私は 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 (?) では発生しません。

大きな配列と構造の場合、これは影響を与える可能性がありますか? 従うべきベストプラクティスはありますか?

4

2 に答える 2