Excesso de pilha causado pela função recursiva
Sendo um iniciante em programação C ++ e arquitetura de sistemas de computador, eu ainda estou aprendendo o básico do C ++. Ontem eu li sobre a função recursiva, então eu decidi escrever o meu, aqui está o que eu escrevi: (muito básico)
int returnZero(int anyNumber) {
if(anyNumber == 0)
return 0;
else {
anyNumber--;
return returnZero(anyNumber);
}
}
E quando eu faço isso: int zero1 = returnZero (4793); isso causa um estouro de pilha, no entanto, se eu passar o valor 4792 como parâmetro, nenhum estouro ocorrerá.
Alguma ideia do por que ?