Я знаю, как массивы хранятся в куче. Но как массивы хранятся в стеке? Весь массив помещается в стек?
Как массивы хранятся в стеке?
Ответы (2)
Да, весь массив помещается в стек.
См. следующий ответ о том, как переменные распределяются в стеке:
https://stackoverflow.com/a/18479996/1814023
person
Community
schedule
20.11.2013
поэтому, если я создам локальный массив из 100 000 элементов, это может вызвать переполнение стека?
- person Sebi2020; 20.11.2013
@NishithJainMR: размер стека и кучи определяется компилятором в Windoze (т.е. во время компиляции). По умолчанию в MSVC 1 МБ для каждого. Дело в том, что это не определено в стандарте C.
- person cdarke; 20.11.2013
(строго это компоновщик, а не компилятор, и только для основного потока, для других потоков вы можете указать размер стека при создании docs.microsoft.com/en-us/cpp/build/reference/ )
- person Pete Kirkham; 15.06.2021
Массивы хранятся одинаково независимо от того, где они находятся. Неважно, объявлены ли они как локальные переменные, глобальные переменные или динамически выделены из кучи. Единственное, что отличается, это где они хранятся.
person
Some programmer dude
schedule
20.11.2013