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};这是一种非常简洁的方法。看见