【发布时间】:2020-06-09 15:15:20
【问题描述】:
我正在尝试创建一个从命令行参数获取其大小的全局数组。截至目前,我的代码如下所示:
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 是从命令行读入的整数。
【问题讨论】:
-
Matrix[0][i], Matrix[1][i] = ...不会像您认为的那样做。另请参阅Three Star Programmer。 -
您应该认真考虑您的设计。避免全局变量,避免原始指针,使用适当的矩阵类,使用
std::vector和std::array。其他所有事情迟早都会导致混乱。
标签: c++ pointers memory-management heap-memory