我有一个函数可以在数组中生成值并返回指向该数组的指针。这里的MWE代码:无法使用由C++中的函数返回的数组
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;
}
注意,我有一个cout
线在该阵列被正确填充for循环来证明自己。
现在,这是我的问题。我找不到使用返回数组的正确方法。这是我一直在做的事情:
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]
...)没有。谁能告诉我我做错了什么?
在回答了答案中提出的观点后,您可能会惊讶地发现'ary [1]'仍然没有打印出来。 –
谢谢马塞洛。 ary [1],而且我从来没有过。 – bev