Программа включает в себя два больших массива функции (main
):
int array [1000][1000];
char anotherArray [1000][1000];
В Linux это работает отлично, но в Windows программа падает, если эти массивы не перемещаются в глобальную область.
Кажется, это проблема конкретной ОС, в чем ее причина?
Изменить: этот вопрос касается различий между обеими ОС.
Отвечать
(поскольку вопрос помечен как повторяющийся, я не могу ответить на него напрямую)
Причина в том, что стек используется для локальных переменных (как объяснено в других ответах на переполнение стека); в Windows его размер составляет 1 МБ, но в Linux по умолчанию он равен 8 МБ, поэтому доступно больше места.