【发布时间】:2012-12-19 19:44:28
【问题描述】:
我使用malloc 为矩阵分配内存,但之后我对矩阵进行的任何访问以设置元素都会导致分段错误。
这就是我现在正在做的事情:
int **matrix = malloc(rows_number * columns_number * sizeof(int));
if (matrix) matrix[0][0] = 1;
为什么矩阵创建后无法访问? malloc 调用成功,所以我有足够的连续内存用于整个矩阵。
【问题讨论】:
-
malloc 是 C 语言中理解最少、质疑最多的部分 - 请在此处和其他地方搜索有关此主题以及有关此主题的所有其他可想象问题的大量答案。老实说,我不敢相信还有一个关于 malloc 的问题没有被问到 - 并且得到了回答:)
-
allocate matrix in C 的可能重复项
-
查看这个问题的最佳答案:stackoverflow.com/questions/917783/…>
-
@BimmerM3,这个最佳答案是错误的。这不是 2D 数组,而是指向 2D 数组指针仿真的指针。 C原生支持二维数组,为什么不用呢?
标签: c memory-management matrix malloc