когда статический член получает память - PullRequest
10 голосов
/ 16 апреля 2010

У меня есть класс, в котором есть статический член. Как я понимаю, все статические члены являются общими для всех экземпляров класса, что означает, что статические члены будут выделяться памяти только один раз. Где выделяется эта память (стек или куча) и когда выделяется эта память?

РЕДАКТИРОВАТЬ: Эта память отличается от памяти уровня экземпляра. Как ссылка на эту память? Распределяется ли эта память во время компиляции?

Ответы [ 3 ]

4 голосов
/ 16 апреля 2010

Статические члены всегда хранятся в глобальной куче, даже члены ссылочного типа. Однако эта куча не является обычной кучей мусора. Узнайте больше здесь: http://www.codeproject.com/KB/cs/codeconcepts.aspx

1 голос
/ 16 апреля 2010

Выделение памяти для статических элементов выполняется только тогда, когда тип используется для времени, будь то объявление переменной или доступ к статическому члену.

Как уже говорилось, выделение памяти для статических элементов выполняется в куче.

0 голосов
/ 16 апреля 2010

Это память, выделенная в куче. Каждый тип имеет статический конструктор, который выполняет инициализацию типа. Выполняется до обращения к типу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...