我有一个指向结构数组的指针,当我尝试初始化它时,我遇到了分段错误。
MyStruct **** node = NULL;
node[0][0][0] = new MyStruct();
我尝试使用2D数组并且工作正常。
有什么问题?
感谢您的回复。
答案 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();