Стек хранит кадры вызовов и часть локальных данных, куча — объекты с управляемым временем жизни. Значимый или ссылочный тип определяет семантику значения, а не универсальное физическое место хранения.
Управление памятью: стек, куча, ссылочные и значимые типы — что про это знаешь?
Стек хранит кадры вызовов и часть локальных данных, куча — объекты с управляемым временем жизни. Значимый или ссылочный тип определяет семантику значения, а не универсальное физическое место хранения.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Стек хранит кадры вызовов и часть локальных данных, куча — объекты с управляемым временем жизни. Значимый или ссылочный тип определяет семантику значения, а не универсальное физическое место хранения.
Локальный int может оказаться в регистре или стеке, struct-поле объекта — внутри объекта в куче, а boxing создаёт отдельный управляемый объект. Ссылка на объект сама тоже является значением и может храниться в разных местах.
При выходе из метода его кадр перестаёт быть активным; объекты в куче освобождаются, когда сборщик установит их недостижимость. Неуправляемые ресурсы требуют явного жизненного цикла через IDisposable/using. Упрощение «value type — стек, reference type — куча» часто приводит к неверным выводам.