Я только что исчерпал стек на работе, это была база данных, и она выполняла некоторые потоки, в основном предыдущий разработчик бросил большой массив в стек, и стек все равно был низким.Программное обеспечение было скомпилировано с использованием Microsoft Visual Studio 2015.
Несмотря на то, что потоку не хватило стека, он молча отказал и продолжил работу, он переполнялся только при обращении к содержимому данных в стеке,
Лучший совет, который я могу дать, это не объявлять массивы в стеке - особенно в сложных приложениях и особенно в потоках, вместо этого используйте кучу.Вот для чего он нужен;)
Также имейте в виду, что при объявлении стека может произойти сбой не сразу, а только при доступе.Я предполагаю, что компилятор объявляет стек под окнами «оптимистично», то есть он будет предполагать, что стек был объявлен и имеет достаточный размер, пока не станет его использовать, а затем обнаружит, что стека нет.
Разные операционные системы могут иметь разные политики объявления стека.Пожалуйста, оставьте комментарий, если вы знаете, каковы эти правила.