malloc()
s とs をランダムにネストして異なるサイズで使用するfree()
と、ある時点でメモリが断片化されます。これは、これらの操作により、連続していない小さなメモリ領域の大きなリストが残るため、1 つの大きなピースとして割り当てることができないためです。 .
これに関するいくつかの質問:
これが非常に頻繁に行われ、メモリが強制的に断片化され、これらのメモリ領域がすべて
free()
削除される場合、これらの空き領域が元の連続したサイズに連結されていると想定できますか?同じメモリに対して常に
malloc()
後続の呼び出しを実行free()
し、これらの呼び出しをネストしない場合、割り当て/解放されたサイズが常に異なる場合、このシナリオでもメモリが断片化されますか?