【发布时间】:2018-04-16 08:46:50
【问题描述】:
我目前正在开发一个程序,该程序需要一个函数来计算数组值,然后将这些值存储在 arr1[] 中,它的大小未知,并且在函数内计算。然后它将整个数组连同数组的大小一起传回主函数。使用结构,我返回了大小,但由于某种原因我无法返回数组。有人可以指导我正确的方向吗?
这是我的结构:
struct Arr
{
int size_1;
int arr_1[];
};
这是我返回数组的函数的一部分,其中arr1[] 是我需要返回的数组:
Arr smallElement(int arr[], int size)
{
Arr tempArr;
for (int count = 0; count < newSize; count++)
{
tempArr.arr_1[count] = arr1[count];
}
return tempArr;
}
这是我在我的 main 函数中用来调用函数来打印数组的,但它每次只打印 3 个随机数:
Arr a;
a = smallElement(array, n);
cout << "The array is: ";
for (int count = 0; count < a.size_1; count++)
{
cout << a.arr_1[count] << " ";
}
【问题讨论】:
-
请将您的代码显示为minimal reproducible example。
-
使用
std::vector。 -
只是不要这样做...此代码容易出错,令人困惑,并且在当前状态下显示 UB,无论如何。 (tl;dr; 使用向量)
-
灵活数组成员或 VLA 不是有效的 C++。
-
count < newSize;newSize 是从哪里来的?
标签: c++ arrays function struct