Понимание этого вопроса НЕВОЗМОЖНО без ознакомления с вопросом 39. Вы должны понимать, в чем идея Implicit Free List и метода двоичных маркеров. По хорошему просмотреть презентацию с последней практики с 1 по 36 слайд

Dynamic Memory Allocation.pdf

Описание

Улучшаем идею Implicit Free List: строим двусвязный список из свободных блоков.

<aside> 💡 Двусвязный список - это структура данных, которая состоит из узлов, которые хранят полезные данные, указатели на предыдущий узел и следующий узел.

</aside>

Очень хорошее видео, где всё объяснено за 7 минут, правда на английском

Я брал много картинок оттуда. По сути, можете посмотреть и дальше просто пробежаться по комментариям

Это было и в Implicit Free List:

Payload - полезная нагрузка (даннные, которые мы храним) Padding - просто “набивка”, тут нет полезных данных

Это мы добавили для свободных блоков:

Pred (или prev от previous) - указатель на предыдущий свободный блок Succ (или next) - указатель на следующий свободный блок

Untitled

Теперь у нас есть указатели, получаем двусвязный список!

Как мы себе это представляем

(A, B, C) - свободные блоки

Untitled