Я пытаюсь понять, как malloc-realloc и free глубоко работают в C.
Я нашел эту страницу и смог понять, как распределяется порция, но я не совсем уверен, как работает функция free, потому что в моей тестовой программе после освобождения некоторые данные остаются в памяти называется.
Так выглядит память раньше ...
33 0 0 0 0 0 0 0 *q=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
... и после свободной функции:
33 0 0 0 0 0 0 0 *q=112 132 178 223 255 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Я понял, что 33 - это размер куска, хранящегося в заголовке куска, но я не могу понять, что означают числа после "q", когда память освобождается.
Q - адрес, возвращаемый malloc.
Спасибо!