Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 我们可以在C中返回包含数组的结构吗?_C++_Memory_Allocation - Fatal编程技术网

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

C++ 我们可以在C中返回包含数组的结构吗?,c++,memory,allocation,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

以下是一个结构:

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
}
我知道函数可以返回简单的结构。 它们还可以返回包含数组的结构吗?内存中发生了什么


还有:当我们声明元素结果时;在函数中,数组是用0初始化的,还是只是随机值?

< p>是,你可以,在C和C++中。

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

数组是用0初始化的,还是只接受随机值


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

< P>是的,C和C++中都可以。

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

数组是用0初始化的,还是只接受随机值


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

为什么返回的数组在返回时不以相同的方式复制\_ツ_/“可能是因为它对于大型阵列来说速度很慢,所以C标准想要阻止它的出现。”@Andreimargelou;因为数组有一个特殊的特性,当它们在表达式中使用时,它们转换为指向它的第一个元素的指针,但有一些例外。数组不能从函数返回。因此,如果我们希望函数返回数组,我们可以将数组“打包”到结构中吗?如果数组未初始化,访问其元素会产生未定义的行为。包含随机值只是其中一种可能的表现形式。为什么数组返回时不以相同的方式复制\_ツ_/“可能是因为它对于大型阵列来说速度很慢,所以C标准想要阻止它的出现。”@Andreimargelou;因为数组有一个特殊的特性,当它们在表达式中使用时,它们转换为指向它的第一个元素的指针,但有一些例外。数组不能从函数返回。因此,如果我们希望函数返回数组,我们可以将数组“打包”到结构中吗?如果数组未初始化,访问其元素会产生未定义的行为。包含随机值只是其中一种可能的表现形式。是的,我们可以!!!!!如果希望将其初始化为零,则elem Result={0};这是一种非常简洁的方法。看,是的,我们可以!!!!!如果希望将其初始化为零,则elem Result={0};这是一种非常简洁的方法。看见