我正在尝试创建一个全局数组,该数组从命令行参数获取其大小。到目前为止,我的代码如下所示:
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++
中,您可以利用具有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)));
}