结构的多维数组 - 分段错误

时间:2014-03-29 15:44:02

标签: c++ arrays pointers struct segmentation-fault

我有一个指向结构数组的指针,当我尝试初始化它时,我遇到了分段错误。

MyStruct **** node = NULL;
node[0][0][0] = new MyStruct();

我尝试使用2D数组并且工作正常。

有什么问题?

感谢您的回复。

2 个答案:

答案 0 :(得分:1)

您需要在使用前分配内存。你不能只是跳过3个级别而不分配和使用它。

首先分配node。然后,您可以访问node[0]

现在,如果您分配node[0],则可以访问node[0][0]

继续这样。

答案 1 :(得分:0)

尝试使用new运算符首先动态分配数组:

MyStruct ****node = new MyStruct***[MAX_SIZE];
for(int i=0; i<MAX_SIZE; ++i) node[i] = new MyStruct**[MAX_SIZE];
for(int i=0; i<MAX_SIZE; ++i) 
  for(int j=0; j<MAX_SIZE; ++j) node[i][j] = new MyStruct*[MAX_SIZE];
node[0][0][0] = new MyStruct();