Stapelüberlauf durch rekursive Funktion

Als Anfänger in C ++ - Programmierung und Computersystemarchitektur lerne ich immer noch die Grundlagen von C ++. Gestern habe ich über rekursive Funktionen gelesen und mich dazu entschlossen, meine eigenen zu schreiben. Hier ist, was ich geschrieben habe: (sehr einfach)

int returnZero(int anyNumber) {
    if(anyNumber == 0)
        return 0;
    else  {
        anyNumber--;
        return returnZero(anyNumber);
    }

}

Und wenn ich das mache: int zero1 = returnZero (4793); Es kommt jedoch zu einem Stapelüberlauf. Wenn ich den Wert 4792 als Parameter übergebe, tritt kein Überlauf auf.

Irgendwelche Ideen, warum?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage