如何创建指向2D指针数组的指针-C

模拟

如何创建指向2D指针数组的指针?我正在尝试使用main外部的不同方法对2D数组进行变异,以及在main内部对其进行处理。我很幸运创建了一个指向2D数组的指针,但是我似乎无法将数组的所有索引都初始化为null。除非将数组传递给方法,否则我似乎也无法分配值。这是我尝试的:

BoardObject ** board;
board = malloc(BOARD_SIZE * sizeof(BoardObject));

for (int i = 0; i < BOARD_SIZE; i++){
    board[i] = malloc(BOARD_SIZE * sizeof(BoardObject));
}
for (int i = 0; i < BOARD_SIZE; i++){
    for (int j = 0; j < BOARD_SIZE; j++){
        board[i][j] = NULL;
    }
}

我收到一条错误消息,提示我无法将* void类型分配给BoardObject。我可能做错了,但似乎在堆栈交换上找不到任何类似的问题。如果可能的话,请向我解释解决方案。谢谢!

注意:BoardObject是一个结构。

伦丁

我似乎无法将数组的所有索引初始化为null

使用calloc()。

board = malloc(BOARD_SIZE * sizeof(BoardObject));

这段代码说“使用指针指向指针,并使其指向一个BOARD_SIZE对象数组”。如果要创建一个指针数组,那没有任何意义。您应该已经分配了sizeof(BoardObject*)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章