如何正確地設置、訪問和釋放C中的多維數組?我在C中看到了許多關于多維數組的“我的代碼出了什么問題”的問題。出于某種原因,人們似乎無法理解這里發生的事情,所以我決定回答這個問題,作為對其他人的引用:如何正確地設置、訪問和釋放C中的多維數組?如果其他人有用的建議,請隨心所欲地張貼!
3 回答
慕哥6287543
TA貢獻1831條經驗 獲得超10個贊
mallocfree:
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_COLSNUM_ROWSrows
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 關注
- 541 瀏覽
添加回答
舉報
0/150
提交
取消
