Как массивы хранятся в стеке?

Я знаю, как массивы хранятся в куче. Но как массивы хранятся в стеке? Весь массив помещается в стек?


person Sebi2020    schedule 20.11.2013    source источник


Ответы (2)


Да, весь массив помещается в стек.

См. следующий ответ о том, как переменные распределяются в стеке:

https://stackoverflow.com/a/18479996/1814023

person Community    schedule 20.11.2013
comment
поэтому, если я создам локальный массив из 100 000 элементов, это может вызвать переполнение стека? - person Sebi2020; 20.11.2013
comment
@NishithJainMR: размер стека и кучи определяется компилятором в Windoze (т.е. во время компиляции). По умолчанию в MSVC 1 МБ для каждого. Дело в том, что это не определено в стандарте C. - person cdarke; 20.11.2013
comment
(строго это компоновщик, а не компилятор, и только для основного потока, для других потоков вы можете указать размер стека при создании docs.microsoft.com/en-us/cpp/build/reference/ ) - person Pete Kirkham; 15.06.2021

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

person Some programmer dude    schedule 20.11.2013