Типы размещения
Спецификаторы
(no specifier)
- автоматическоеstatic
- статическое (внутреннее связывание)extern
- так же статическое (внешнее связывание)thread_local
- тред-локальное размещение
Автоматическое размещение
Память под объект аллоцируется на стеке в начале открыващегося блока кода и деаллоцируется в конце.
Статическое размещение
Память под объект аллоцируется перед исполнением программы и деаллоцируется в конце.
Если переменная со статическим размещением не инициализируется разработчиком, то она будет проинициализирована нулем соответствущего типа.
Тред-локальное размещение
Память под объект аллоцируется при создании потока и деаллоцируется при его завершении. Каждый поток обладает собственным экземпляром объекта.
Динамическое размещение
Память под объект аллоцируется и деаллоцируется по запросу программы при помощи специальных функций. При закрытии программы все недеаллоцированные ранее области памяти деаллоцируются средствами ОС.
(не уверен в последнем пункте, так как не силен за shared memory).