Прежде всего, это не C, который ограничивает рекурсию .Это ваша операционная система!
Это происходит потому, что рекурсия использует стек.Вы знаете, что стек ?Это область памяти приложения, которая используется для хранения (локальных) переменных или параметров, которые должны передаваться из одной функции в другую во время вызова функции.Он также хранит другую информацию, такую как адрес функции, к которой он должен возвращаться после выполнения текущей.
Теперь, вы видите, бесконечная рекурсия - это проблема, потому что больше данных хранится в стеке после каждой рекурсии, и поскольку эти функции никогда не возвращаются, их ресурсы в стеке также никогда не освобождаются. В какой-то момент стеку не хватит памяти , и он взорвется вам в лицо.
В Windows, если вам нужно увеличить размер стека, вы можете попробуйте это .