我们可以在C中返回一个包含数组的结构吗?

时间:2017-02-04 21:18:27

标签: c++ memory allocation

这是一个结构:

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结果时;在函数中,数组是用0初始化的,还是只取随机值?

1 个答案:

答案 0 :(得分:4)

是的,你可以在C和C ++中使用。

数组与元素的其余部分一起逐元素复制。对于大型阵列,这可能会很慢。

  

是用0初始化的数组,还是只取随机值?

数组未初始化,因此它包含不确定的值。访问它们会导致未定义的行为。