我有一个函数可以在数组中生成值并返回指向该数组的指针。这是 MWE 代码:
int *f(size_t s)
{
int *ret=new int[s];
for(size_t a=0;a<s;a++)
{
ret[a]=a;
cout << ret[a] << endl;
}
return ret;
}
请注意,我在 for 循环中有一个 cout
行来向我自己证明数组已正确填充。
现在,这是我的问题。我找不到使用返回数组的正确方法。这是我一直在做的事情:
int main (void)
{
int ary_siz = 10;
int ary[ary_siz];
*ary = *f(ary_siz);
cout << ary[0] << endl;
cout << ary[2] << endl;
cout << ary[3] << endl;
}
ary
中的第一个元素似乎是正确的。其他的 (ary[1]
,ary[2]
...) 不是。谁能告诉我我做错了什么?
最佳答案
int main (void)
{
int ary_siz = 10;
int *ary = f(ary_siz);
cout << ary[0] << endl;
cout << ary[2] << endl;
cout << ary[3] << endl;
delete [] ary;
}
关于c++ - 在 C++ 中使用函数返回的数组时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7787460/