这是一个结构:
struct elem {
int a[100];
int val;
};
elem foo() {
elem Result;
Result.a[0] = 5;
return Result;
}
int main () {
elem aux = foo();
//is Result passed back to aux, so that we can use its array?
cout<<aux.a[0]<<"\n"; // 5
}
我知道函数可以返回简单的结构。 他们还可以返回包含数组的结构吗?内存中发生了什么?
还有:当我们声明 elem Result 时;在函数中,数组是用0初始化的,还是只取随机值?
最佳答案
是的,在 C 和 C++ 中都可以。
数组与结构的其余部分一起逐个元素地复制。对于大型阵列,这可能会很慢。
is the array initialised with 0, or it just takes random values?
数组未初始化,因此它包含不确定的值。访问它们会导致未定义的行为。
关于c++ - 我们可以在 C 中返回一个包含数组的结构吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42045706/