память на самом деле совсем не "свободна ()".
память, полученная операционной системой, имеет размер страницы (обычно 4 КБ памяти). всякий раз, когда процессу не хватает памяти, он получает дополнительные страницы, это пространство, которое фактически использует malloc (). когда процесс завершается, все страницы возвращаются в операционную систему, что делает ненужными бесплатные вызовы. если ваша программа - сервер или аналогичный, то каждый фрагмент памяти, который никогда не освобождается, будет возвращен только тогда, когда программа действительно уничтожена, что сделает ее еще более голодной.