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