Stack overflow: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Recupero di 1 fonte/i e segnalazione di 0 link interrotto/i. #IABot (v1.6.2)
FrescoBot (discussione | contributi)
m Bot: specificità dei wikilink e modifiche minori
Riga 20:
 
==Ricorsione infinita==
La causa più comune di uno stack overflow è una [[ricorsione]] con profondità eccessiva o infinita.
 
I linguaggi che implementano la tecnica [[Algoritmo_ricorsivo#Eliminazione_della_ricorsione|tail recursion]], come ad esempio il linguaggio [[Scheme]], permettono una particolare ricorsione infinita che può essere eseguita senza stack overflow. Questo avviene poiché le chiamate che fanno uso di tail-recursion non richiedono uno spazio aggiuntivo nello stack<ref name="tailRecur">{{Cita web
Riga 33:
 
==Variabili di stack molto grandi==
L'altra causa principale dello ''stack overflow'' è il tentativo di allocare più memoria di quella disponibile nello stack. Questo avviene quando si crea un [[array]] di [[Variabile (informatica)#Visibilità di una variabile|variabili locali]] molto grande. Per questo motivo gli array più grandi di qualche [[kilobyte]] dovrebbero essere allocati [[allocazione dinamica della memoria|dinamicamente]] anziché allocarli come variabili locali<ref name="onlamp">{{Cita web
| cognome = Feldman
| nome = Howard
Riga 64:
}} </ref>.
 
==Esempi nel linguaggio [[C (linguaggio)|linguaggio C]]/[[C++]]==
 
===Ricorsione infinita con una funzione===