c - 如何在 C 中正确设置、访问和释放多维数组?

标签 c dynamic multidimensional-array malloc

我已经看到许多关于 C 中多维数组的“我的代码有什么问题”的问题。出于某种原因,人们似乎无法理解这里发生的事情,所以我决定作为一个问题来回答这个问题引用他人:

如何在 C 中正确设置、访问和释放多维数组?

如果其他人有帮助的建议,请随时发表!

最佳答案

在 C99 之后的 C 中,即使是动态多维数组也可以使用 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);

关于c - 如何在 C 中正确设置、访问和释放多维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12462615/

相关文章:

c - 在 C 中将 Doubles 相乘时精度下降

C:为什么整数充当长整数?

python - 需要创建一个新的 Python 列表,其中包含另一个列表的所有可能的唯一组合

dynamic - 三个js顶点不更新

c - 动态结构数组

c++ - 在 C++ 中声明可变长度二维数组的正确方法

Python:Numpy __deepcopy__ 类型错误

创建结构数组的数组

c - 无法使用c打开文件

javascript - 窗口错误 : url property empty when error in dynamically added script (via script tag)