Cでは構造体を値で渡す(または返す)ことができますが、配列を値で渡すことはできません。構造体に配列が含まれている場合はどうなりますか? 構造体が値によって渡される (または返される) ときに、配列 (構造体内にある) がコピーされますか? 私はideone.com でサンプルを実行しましたが、動作しますが、これが標準のどこでカバーされているか知りたいです (はい、見ました)。
http://open-std.org/JTC1/SC22/WG14/www/docs/n1256.pdf
typedef struct
{
float aValue;
int anArray[5];
} myStruct;
myStruct addValueToArray(myStruct in)
{
myStruct out = in;
int i;
for (i = 0; i < 5; i++)
{
out.anArray[i] = in.anArray[i] + in.aValue;
}
return out;
}