我想创建一个函数,它接受一个整数作为参数并在 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/