Per conoscere il limite delle chiamate ricorsive in C++ ho provato questa funzione!Limitare le chiamate ricorsive in C++ (circa 5000)?
void recurse (int count) // Each call gets its own count
{
printf("%d\n",count);
// It is not necessary to increment count since each function's
// variables are separate (so each count will be initialized one greater)
recurse (count + 1);
}
questo programma si ferma quando il conteggio è uguale 4716! quindi il limite è solo 4716 !! Sono un po 'confuso !! perché il programma interrompe l'elaborazione quando il conteggio è uguale a 4716 !! PS: eseguito in Visual Studio 2010. grazie
La ricorsione illimitata è possibile su alcuni obiettivi. GCC supporta qualcosa chiamato "split stack", che consente agli stack di crescere, * in modo discontinuo, * per riempire la memoria disponibile. Vedi http://gcc.gnu.org/wiki/SplitStacks –
So che c'era un limite ma mi chiedo quale sia questo limite! non mi aspettavo che lo stack esplodesse in meno di 5000 chiamate! Grazie per la spiegazione ! – satyres
C'è ancora un limite, e c'è ancora (per quanto ho capito) nessun modo per rilevare l'esaurimento dello stack. Utilizzando uno stack software, c'è almeno un modo per rilevare quando lo stack si esaurisce ... –