c++ - 以整数为参数,返回数组

标签 c++ arrays return

我想创建一个函数,它接受一个整数作为参数并在 C++ 中返回一个数组。这是我想到的伪代码:

function returnarray(integer i)
{
    integer intarr[i];

    for (integer j = 0; j < i; j++) { intarr[j] = j; }

    return intarr;
}

我尝试了将 returnarray 声明为 function* 返回指针的常用方法,但是我不能将整数作为我的参数。我也不能将 j 分配给 intarr[j]。我真的很想避免创建一个指向 int 的指针,这样我就可以使用参数。

有什么方法可以做到这一点,并且能够在不为它创建指针的情况下将 j 分配给 intarr[j] 吗?

编辑:

忘了写我想避免 vector 。我只在真的需要时才使用它们! (我的理由是我的)。

谢谢:D

最佳答案

您不能返回堆栈分配的数组 - 它会超出范围并释放内存。此外,C++ 不允许堆栈分配的可变长度数组。您应该使用 std::vector。

std::vector<int> returnarray(int i) {
    std::vector<int> ret(i);
    for(int j = 0; j < i; j++) ret[j] = j;
    return ret;
}

关于c++ - 以整数为参数,返回数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4480251/

相关文章:

c++ - long long int 类型函数返回十进制值

javascript - 在 JavaScript 中使用数组

c++ - 我的框架 : Collection of unknown subclasses (hotspot)

c++ - 是否可以使用带有 CMake 的 C++ 在 Linux 上创建 Windows exe?

c++ - C/C++ 中超大静态数组的算术运算

c - 返回结构

Android:如何在我的 Activity 中启动电话,然后再返回?

bash - 评估 bash "&&"退出代码行为

c++ - 在远程进程中隐藏控制台窗口

来自字符串的 C++ 字节数组