ループでは、最初にメモリを割り当て (おそらく Linux ARM では最大 2 ~ 3k)、作業を行ってから割り当てを解除します。ループには多くの反復があるため、そのような割り当て/割り当て解除がヒープを断片化して、後続の「malloc」が失敗するかどうか疑問に思っています。
擬似コードは次のようになります。
...
while(...){
list=malloc(N);
// do some work with list
free(list);
}
ループでは、最初にメモリを割り当て (おそらく Linux ARM では最大 2 ~ 3k)、作業を行ってから割り当てを解除します。ループには多くの反復があるため、そのような割り当て/割り当て解除がヒープを断片化して、後続の「malloc」が失敗するかどうか疑問に思っています。
擬似コードは次のようになります。
...
while(...){
list=malloc(N);
// do some work with list
free(list);
}