Нет, в общем 1 Вы не можете.Вы должны хранить эту информацию отдельно.
Если вам нужно использовать эту память в виде строки или массива, я советую использовать std::string
или std::vector
, которые сами выполняют всю эту бухгалтерию.
1. то есть "в отношении стандарта"
Я вижу, что ваш вопрос относится к MSVC ++;в этом случае предоставляются некоторые помощники для отладки кучи , но они работают только при компиляции проекта в режиме отладки;Я думаю, что есть какая-то другая специфичная для компилятора функция для получения выделенного размера, но она не будет работать, если используются пользовательские распределители.
С другой стороны, API, такие как LocalAlloc
Вы знаете, насколько велик выделенный кусок памяти (см., например, LocalSize
).
Но опять же, я думаю, что это более чистый дизайн, чтобы отслеживать эту информацию самостоятельно.