堆是否碎片化

时间:2012-11-17 11:06:59

标签: c heap

在一个循环中,我在开始时分配一些内存(在Linux ARM上可能高达2-3k),处理它然后解除分配它。由于循环有很多次迭代,我想知道这样的分配/释放是否会破坏堆,以便随后的“malloc”失败。

伪代码如下所示:

...
while(...){
 list=malloc(N);
 // do some work with list
 free(list);
}

1 个答案:

答案 0 :(得分:0)

不,那很好。在更多分配之后,堆碎片开始成为一个问题 - 不同的大小。 此外,如果您仍然担心,只需在堆栈上使用alloca进行循环中的分配。