如何正确地设置、访问和释放C中的多维数组?我在C中看到了许多关于多维数组的“我的代码出了什么问题”的问题。出于某种原因,人们似乎无法理解这里发生的事情,所以我决定回答这个问题,作为对其他人的引用:如何正确地设置、访问和释放C中的多维数组?如果其他人有用的建议,请随心所欲地张贴!
3 回答
慕哥6287543
TA贡献1831条经验 获得超10个赞
malloc
free
:
double (*A)[n] = malloc(sizeof(double[n][n]));for (size_t i = 0; i < n; ++i) for (size_t j = 0; j < n; ++j) A[i][j] = someinvolvedfunction(i, j);free(A);
12345678_0001
TA贡献1802条经验 获得超5个赞
int (*rows)[NUM_ROWS][NUM_COLS] = malloc(sizeof *rows);...free(rows);
(*rows)[i][j]
NUM_COLS
NUM_ROWS
rows
int (*rows)[NUM_COLS] = malloc(sizeof(*rows) * NUM_ROWS);...free(rows);
rows[i][j]
NUM_COLS
int *matrix = malloc(sizeof(int) * NUM_COLS * NUM_ROWS);...free(matrix);
matrix[NUM_COLS * i + j]
- 3 回答
- 0 关注
- 495 浏览
添加回答
举报
0/150
提交
取消