00b7b000
- фактическое начало памяти кучи, выделенной программе.
Когда вы вызываете malloc
, он сохранит некоторые данные до возврата указателя (в данном случае 16 байтов).Сохраненные данные зависят от конкретной реализации, но по крайней мере размер выделенной памяти должен быть сохранен.
Эта информация используется, когда вы вызываете free
, чтобы должным образом освободить память для будущего использования.Он также используется для realloc
функций.
Что касается конца, не соответствующего заданному размеру, то, вероятно, программа берет часть памяти из ОС для кучи и использует ее по мере необходимости.Таким образом, даже если вы выделили 0x21ff0
байт, еще можно выделить некоторые данные, прежде чем запрашивать у ОС больше памяти.