【发布时间】:2014-06-29 19:28:22
【问题描述】:
我对 C 语言有点生疏,我正在尝试初始化一个矩阵,但我遇到了一些问题。做了一些研究,但我找不到任何东西。
我在以下位置遇到分段错误:
char **board;
board = (char **)malloc(N*N*sizeof(char));
board[0][0] = '.'; // segmentation fault here
我可以这样做:
char board[N][N] = '.';
但我需要通过引用将矩阵传递给函数,但我也遇到了错误,所以我尝试从一开始就使用双指针。
谢谢。
【问题讨论】:
-
显示期望获取矩阵的函数的声明
-
搜索:如何分配二维数组。
-
@this 很难找到一个有很好答案的线程。 This answer 是我能找到的最好的。
-
@MattMcNabb 选择:stackoverflow.com/search?q=[c]+2d+array+malloc
-
使用 C,在处理二维数组时,您需要决定是否需要一个指针数组,每个指针指向一个单独的
char数组(或任何数据类型),或者如果您想要一个char的二维数组作为一个内存块。这些是完全不同的野兽,即使您通常可以使用相同的array[row][column]语法来处理两者中的元素。
标签: c pointers matrix segmentation-fault