Essendo un principiante dell'architettura di sistemi di programmazione e computer C++, sto ancora imparando le basi del C++. Ieri ho letto di funzione ricorsiva, così ho deciso di scrivere il mio, ecco quello che ho scritto: (molto semplici)Overflow dello stack causato dalla funzione ricorsiva
int returnZero(int anyNumber) {
if(anyNumber == 0)
return 0;
else {
anyNumber--;
return returnZero(anyNumber);
}
}
E quando faccio questo: int ZERO1 = returnZero (4793); provoca un overflow dello stack, tuttavia, se si passa il valore 4792 come parametro, non si verifica un overflow.
Qualche idea sul perché?
Forse il valore più grande è esattamente che cosa è necessario per overflow dello stack? – Listing
Provate 5000 - molto probabilmente sovverterà anche lo stack. Quanta memoria ha il tuo sistema? – Silas
Stai chiedendo perché il tuo stack ha una dimensione particolare? –