Когда я использую malloc()
и free()
случайным образом, вложенные и с разными размерами, в какой-то момент память будет фрагментирована, потому что эти операции оставляют большой список небольших областей памяти позади, которые являются несмежными и поэтому могут " t будет выделено как одна большая часть.
Несколько вопросов по этому поводу:
-
Если это делается довольно часто, так что память вынуждена быть фрагментирована, а затем все эти области памяти
free()
d, могу ли я предположить, что эти свободные области объединены обратно в исходный смежный размер? -
Когда я всегда делаю
malloc()
, а затемfree()
для одной и той же памяти и никогда не вставляю эти вызовы. Разве фрагментирована память в этом сценарии, когда распределенные/освобожденные размеры всегда разные?