Infinite ricorsione provoca lo stack di chiamate a traboccare nella maggior parte dei linguaggi di programmazione . Quando una procedura o funzione chiama un'altra procedura o funzione, le precedenti informazioni sullo stack di chiamate viene mantenuto e le informazioni dalla nuova funzione viene allocato in cima alla pila . Quando una funzione che richiama sé stesso ricorsivamente senza un mezzo chiaro di cessazione , l'applicazione verrà allocare più memoria sullo stack continuamente fino allocare più memoria di quella disponibile sullo stack , causando un overflow dello stack .
Molto grandi variabili stack
variabili dichiarate sullo stack includono variabili di input in un procedimento , il valore di ritorno per la procedura e le eventuali variabili membro utilizzati per i calcoli . Ciò può provocare un overflow dello stack se la dimensione combinata di chiamata di procedura e le sue variabili è maggiore della memoria stack disponibile .
Stack Pointer Perdita
Pila perdita puntatore si verifica ogni volta che la memoria sullo stack viene danneggiato . Ciò può accadere , cercando di accedere alle funzioni o ai dati in memoria che in precedenza sono stati liquidati , per esempio. Se questo accade , una singolare forma di ricorsione si verifica , con la conseguente applicazione cercando di trovare le informazioni di base di un dato pezzo di dati . Poiché le informazioni tecnicamente non esiste, il comportamento dell'applicazione diventa indefinito , e una serie infinita di chiamate di funzione diventano possibili . Questa limitazione si verifica principalmente solo a basso livello, linguaggi orientati agli oggetti , come C + + .
Programmazione © www.354353.com