Я вижу, что вы не искали документацию.
HeapSize()
существует.
Редактировать Поразмышляя, возможно, вы просили альтернативу - HeapSize()
, которую вы можете использовать, когда выполняете распределение самостоятельно с помощью new
.
Ответ - нет. Стандартные процедуры выделения не имеют ничего, чтобы захватить информацию о блоке памяти, потому что:
- Это сильно зависит от реализации, а
- Вы уже знаете размер блока (потому что вы указали его в первую очередь), так в чем же смысл раздувания?
Фактически HeapSize()
является зависимой от реализации функцией для Windows, которая делает это, но вы можете использовать ее только тогда, когда выполнили HeapAlloc()
.
Существует [также нестандартный] _msize
, который можно использовать с malloc
и друзьями, но new
может не использовать malloc
.
Поэтому я предлагаю вам самим отслеживать размеры в вашем распределителе.