【发布时间】:2015-03-17 22:37:58
【问题描述】:
我正在试验一些基本的 C 代码,它用指针定义了一个 int 矩阵。
typedef int **Matrix;
Matrix createMatrix(int lines, int columns) {
int i, j;
Matrix m = (Matrix) malloc(sizeof(int) * lines * columns);
for (i = 0; i < lines; ++i) {
for (j = 0; j < columns; ++j) {
m[i][j] = 0;
}
}
return m;
}
int main(int argc, char**argv) {
Matrix m = createMatrix(5, 10);
// ...
if (m[2][3] == 20) {
// ...
}
return 0;
}
但是,这些m[i][j] 访问会引发分段错误。这里有什么问题?星号太多?
我确信指向 int 指针的指针实际上与矩阵相同。
【问题讨论】:
-
您是否加入了
stdlib.h? -
在这个网站上查看一些关于“如何分配二维数组”的其他问题,有很多工作示例
-
你知道数组和指针的区别吗?指向指针的指针、指针数组和数组数组是完全不同的东西(尽管第二个可以与第一个指向)。
标签: c pointers matrix segmentation-fault