#cpp
Можете объяснить, когда возникает эта ошибка и как от нее избавиться?
Ответы
Ответ 1
Это означает, что в стеке недостаточно места. Причины - например, слишком глубокая рекурсия (редко), или слишком большие локальные переменные (куда чаще), или и то и другое сразу :) Как избавиться? Опять же, можно просто в настройках компилятора поднять размер стека. Но надежнее и лучше - посмотреть, нет ли слишком глубокой (вплоть до бесконечности) рекурсии, заменить локальные массивы на выделяемые динамически. int f() { int a[1000000]; практически гарантированно даст переполнение стека. В отличие от int f() { int * a = new int[1000000]; // Только не забудьте потом удалить... или vectora(1000000); Словом, смотрите, кто съедает много стековой памяти, и избавляйтесь от него...
Комментариев нет:
Отправить комментарий