[C ++中的3d全局数组

问题描述 投票:0回答:1

我正在尝试创建一个全局数组,该数组从命令行参数获取其大小。到目前为止,我的代码如下所示:

int*** Matrix;

后来,在一个函数中,我正在这样做:

Matrix = new int**[2];
    Matrix[0] = new int*[gridSize];
    Matrix[1] = new int*[gridSize];
    for (int i = 0; i<gridSize; ++i){
            Matrix[0][i], Matrix[1][i] = new int[gridSize];
    }

[当我尝试为数组中的条目分配值时,会引发分段错误。我该怎么解决? gridSize是从命令行读取的整数。

c++ pointers memory-management heap-memory
1个回答
0
投票

c++中,您可以利用具有STL的优势

#include <vector>
using Array1D = std::vector<int>;
using Array2D = std::vector<Array1D>;
using Array3D = std::vector<Array2D>;

Array3D globalArray;

void resizeGlobalArray(size_t size) {
    globalArray = Array3D(size, Array2D(size, Array1D(size)));
}
© www.soinside.com 2019 - 2024. All rights reserved.