c++ - 3D 指针段错误

标签 c++ c arrays pointers cc

我想将 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/

相关文章:

c++ - 如何在默认绘制结果之上的子类控件绘制方法中绘制某些内容?

c++ - 如何部分特化函数以调用以元组元素作为参数的函数

c++ - 使用普通指针和 shared_ptr 的行为差异

c - 包含 32 位和 64 位库的错误 ELF 类

c++ - 运送仅暴露 C api 的 C++ dll

c# - 从 C 调用 Mono exe 找不到 libc

c - 如何存储 char* 的值?

arrays - 如何在 PostgreSQL 中创建带范围的数组

c++ - 负一的数组值

c - 如何在 c 中退出 "if"循环?