c++ - 在 C++ 中使用函数返回的数组时遇到问题

标签 c++ pointers

我有一个函数可以在数组中生成值并返回指向该数组的指针。这是 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/

相关文章:

c++ - CFileDialog 在调试器窗口中发布 "First-chance exception"

c - 可用的结构体指针比指定的多吗?

c - 我的无符号短指针返回意外结果。为什么?

c - 在C中保存一个指针地址

c++ - 如何将 std::is_convertible_v 应用于一组可变参数?

c++ - 用平面内存结构替换 vector 的 vector

c++ - 为什么输出中缺少字母 'D'?

c++ - Windows 标准库中的定义不可访问

c++ - 在没有地址的函数中使用指针

c - 指向二维结构数组 C 的指针