gpt4 book ai didi

c++ - 从仅以数组大小作为参数的函数返回二维数组

转载 作者:太空宇宙 更新时间:2023-11-04 15:35:13 24 4
gpt4 key购买 nike

我是 C++ 的新手,我正在尝试从一个函数中创建一个数组,该函数仅以数组大小 [row][col] 作为参数。我知道你不能从 C++ 中的函数返回数组。如果我用 C 编写代码,我会在这些情况下分配内存。但是,我不确定 C++ 的方式是什么 (:

我试过了,

    int** get2Darray(int row, int col){
int** randInts = new int[row][col]; //Invalid. Constant required.
return randInts;
}

谢谢。

编辑:vector 类可以解决问题,但是,我的程序是高度模块化的。我无权访问主程序。应该调用我的函数并创建并返回一个新数组。实现应该只在这个函数内完成

最佳答案

int** randInts = new int[row][col]; 更改为 int* randInts = new int[row * col]; 或定义 int** randInts如下:

int** randInts = new int*[row];
for (int i = 0; i < row; ++i) {
randInts[i] = new int[col];
}

这是 C 方式,而不是 C++ 方式。在 C++ 中,您应该使用容器(例如评论中建议的 vector )。

关于c++ - 从仅以数组大小作为参数的函数返回二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35803898/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com