Привет!
Сегодня рассмотрим, почему free()
не всегда освобождает память, как работает malloc()
, когда glibc действительно возвращает память в ОС, и как избежать фрагментации хипа. А так же напишем кастомный аллокатор.
malloc
Вызываете malloc(42), думаете, что получили 42 байта и живёте счастливо. Но всё гораздо сложнее. malloc() — это не просто «дай мне N байтов», а целая система управления памятью, которая старается минимизировать фрагментацию, уменьшить системные вызовы и ускорить выделение памяти.
malloc(size_t size) — это стандартная функция из Читать полностью »