Переполнение стека, вызванное рекурсивной функцией
Будучи новичком в программировании на C ++ и архитектуре компьютерных систем, я все еще изучаю основы C ++. Вчера я читал о рекурсивной функции, поэтому я решил написать свою собственную, вот что я написал: (очень простой)
int returnZero(int anyNumber) {
if(anyNumber == 0)
return 0;
else {
anyNumber--;
return returnZero(anyNumber);
}
}
И когда я делаю это: int zero1 = returnZero (4793); это вызывает переполнение стека, однако, если я передаю значение 4792 в качестве параметра, переполнение не происходит.
Есть идеи, почему?