我想将 3D 数组中的 2D 数组粘在一起,首先我按以下方式定义 3D 数组
int ***grid;
grid=new int **[number];
然后我想将 2D 数组分配给 3D 构造
for(i=0;i<number;i++)
grid[i]=rk4tillimpact2dens(...);
与
int** rk4tillimpact2dens(...
...
static int** grid;
grid=new int*[600];
for(i=0;i<600;i++)
grid[i]=new int[600];
memset(grid,0x0,sizeof(grid));
...
return(grid);
}
到目前为止没有问题,一切正常,但是当我之后想访问 3D 数组时,我遇到了段错误。就像这样,例如
printf("%d",grid[1][1][1]);
我的错误是什么?
最好, 汉内斯
最佳答案
哦,抱歉,我的问题是错字,我确实这样做了
printf("%d",grid[1][1][1]);
它不起作用:(。但即使
printf("%d",&grid[1][1][1]);
或
printf("%d",*grid[1][1][1]);
行不通。奇怪的是,除非我尝试访问数组,否则不会出现错误
关于c++ - 3D 指针段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47342380/