【发布时间】:2014-11-11 23:13:18
【问题描述】:
我还没有意识到 C 中的堆栈分配和堆分配之间存在差异。我已经用堆栈分配的数组编写了一个非常大的程序,但显然它们不足以存储读取的数据。因此,我需要用 malloc 分配重写所有内容。有没有一种巧妙的方法可以将二维数组动态分配到堆中,并且它们在代码中的用法相似,因此分配了堆栈,这意味着:
我的代码如下所示:
int MM,NN;
float Edge[MM][NN];
Do_Something(MM,NN,Edge);
被调用的过程定义为:
void Do_Something(int MM,int NN,float Edge[MM][NN]);
我需要用 malloc 重写所有内容,以便这些定义仍然有效。这可能吗?
【问题讨论】:
-
float (*Edge)[NN] = malloc(sizeof(float[MM][NN])); -
@BLUEPIXY 你为什么在 cmets 中回答? (只是好奇)
-
@2501 回答不够。我似乎足以发表评论。
标签: c arrays memory-management malloc