Stack overflow: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Recupero di 1 fonte/i e segnalazione di 0 link interrotto/i.) #IABot (v2.0.8.8 |
m wl, punto, spazi, ricorsione mutuale |
||
Riga 1:
{{nota disambigua|il sito di Q&A omonimo|Stack Overflow (sito)}}
In [[informatica]], uno '''stack overflow''' avviene quando è richiesto l'uso di una quantità troppo elevata di [[Memoria (informatica)|memoria]] nello '''''[[
In molti [[linguaggi di programmazione]], lo [[Call stack|stack delle chiamate]] contiene una quantità limitata di memoria, fissata di solito all'avvio del programma. La dimensione dello stack dipende da molteplici fattori, inclusi il linguaggio di programmazione, l'[[Architettura (computer)|architettura]] della macchina, l'uso del [[multithreading]] e la disponibilità di memoria nel sistema. Quando è usata troppa memoria nello '''''stack''''' si dice che avviene un '''''overflow''''', e si verifica un [[Crash (informatica)|crash]] del programma<ref name="fortran1"> {{Cita web
|cognome = Burley
|nome = James Craig
Riga 29:
|urlarchivio = https://web.archive.org/web/20070810213035/http://www.federated.com/~jim/schintro-v14/schintro_73.html
|dataarchivio = 10 agosto 2007
}} </ref>.
==Variabili di stack molto grandi==
Riga 50 ⟶ 49:
Ad esempio un programma eseguito come ''[[Thread (informatica)|thread]]'' singolo potrebbe funzionare correttamente, ma se lo stesso programma è eseguito con thread multipli si verifica un ''crash'' del programma, perché molti programmi che usano i thread hanno a disposizione uno stack più piccolo per ogni singolo thread rispetto ad un programma che non usi i thread.
Allo stesso modo, chi studia lo [[sviluppo (informatica)|
|editore = [[Apple Inc]].
|titolo = Kernel Programming Guide: Performance and Stability Tips
Riga 84 ⟶ 83:
Questo frammento di codice invoca la [[funzione (informatica)|funzione]] <code>f()</code>, e la funzione <code>f()</code> a sua volta richiama se stessa, generando in tal modo una ricorsione infinita.
===Ricorsione infinita con due funzioni (mutuale)===
void f(void);
void g(void);
|