Здравствуйте, Erop, Вы писали:
E>Здравствуйте, xexe2, Вы писали:
X>>Уважаемый ол, чему же именно равен размер объекта в куче?
E>могу поделиться своими отрывочными воспоминаниями о кучах.
E>1) когда ты пишешь что-то типа new MyType, то в кучу приходит запрос выделить тебе sizeof( MyType ) байт памяти.
Для полноты картины можно ещё написать про дебаг.
Под дебагом менеджер памяти обычно выделяет ещё немного больше памяти, что бы перед объектом и после объекта записать по несколько байт неким магическим числом.
При освобождении объекта менеджер проверяет не изменились ли эти магические числа перед и после объекта, это позволяет более менее эффективно отлавливать всякие записи за пределы буферов и расстрелы памяти.
Т.о. в дебаге менеджер выделяет немного больше (зависит от конкретного менеджера, msvc, если память не изменяет, писал толи по 3 толи по 4 байта перед и после блока памяти) и если в релизе объекту хватало блока памяти в 16 байт, то в дебаге ему вполне вероятно уже будет нужно больше, например блок в 32 байта.
Вот например некий господин провел исследования на тему что же рождает gcc:
здесь
и общая картина:
здесь