Страницы

Поиск по вопросам

вторник, 27 ноября 2018 г.

Сколько памяти выделено под переменную?

А с помощью какой функции можно узнать, сколько памяти выделено под переменную в языке С++?


Ответ

Нет такой функции.
У типа есть размер, который можно узнать при помощи sizeof Однако размер реально выделенной памяти может отличаться:
при выделении "в куче" (при помощи new) скорее всего будет выделено больше, т.к. куча может выравнивать свои блоки, например на 16 байт. при выделении "на стеке" размер может быть как больше, из за выравнивания фреймов стека, так и меньше - компилятор может поместить две несвязанные переменные в одно место памяти. при статическом выделении переменной (static), может происходить всё то же самое, плюс могут создаваться дополнительные объекты для обеспечения потокобезопасности.

Комментариев нет:

Отправить комментарий