В последнее время, когда я писал на C или C ++, я объявляю все свои переменные в стеке только потому, что это вариант, в отличие от Java.
Однако я слышал, что плохая идея объявлять большие вещи в стеке.
- Почему именно это так? Я полагаю, что переполнение стека связано, но я не очень понимаю, почему это происходит.
- Сколько вещей в стеке слишком много?
Я не пытаюсь поместить файлы размером 100 МБ в стек, просто дюжину килобайтных массивов для использования в качестве строковых буферов или чего-то еще. Это слишком большое использование стека?
(Извините, если дубликат, поиск стека продолжал давать ссылки на переполнение стека. Нет даже тега стека вызовов, я просто использовал абстрактный.)
std::vector<int>
переменная не будет занимать много места в стеке, большая часть данных находится в куче.