Вопросы к Поиску с Алисой
Переполнение стека при чрезмерной рекурсии происходит из-за того, что функция вызывает саму себя так много раз, что места, необходимого для хранения переменных и информации, связанной с каждым вызовом, больше, чем может поместиться в стеке. en.wikipedia.org
Например, если функция продолжает вызывать саму себя, каждый раз выделяя дополнительное пространство в стеке, то в определённый момент стек переполнится, что приведёт к ошибке сегментации. en.wikipedia.org
Ещё одна причина переполнения стека — создание слишком больших переменных в стеке, например, путём создания локального массива. en.wikipedia.org Если в стеке нет такого количества памяти, случится переполнение. ru.ruwiki.ru
Чтобы избежать переполнения стека, рекомендуется обязательно иметь условие выхода из рекурсии, а если переполнение всё равно происходит, стоит отказаться от использования рекурсии и реализовать алгоритм итеративно. ru.stackoverflow.com