【发布时间】:2016-12-06 01:56:48
【问题描述】:
我一直试图找出问题所在,但我看不到它。
这是一个扫雷网格,我正在尝试为 struct Cell 类型的对象的指针的二维数组分配内存,并设置其值。
当我使用这个函数时,我得到一个单元格网格,我可以从中查询它们的值,但这些都是 NULL。
我知道错误就在这里,因为我使用了一个为我进行此分配的库,并且我的代码可以使用它。我现在必须自己写分配。
struct Cell*** allocate_grid(int grid_width, int grid_height) {
struct Cell*** grid = malloc(grid_width * sizeof(*grid));
int column;
for (column = 0; column < grid_width; column++) {
grid[column] = malloc(grid_height * sizeof(**grid));
int row;
for (row = 0; row < grid_height; row++) {
struct Cell cell = {COVERED, 0, false}; //state, neighbouring mines, is_mine
grid[column][row] = &cell;
}
}
return grid;
}
【问题讨论】:
标签: c multidimensional-array struct