Stack

There are 4 entries for the tag Stack

Introduzione allo Heap

Come promesso nel post della settimana scorsa scrivo questo post sullo heap. Lo heap viene gestito in modo fondamentalmente diverso dallo stack. Come suggerisce anche il nome, l'allocazione di memoria nello heap non segue un ordine determinato e dunque due oggetti che vengono creati uno successivamente all'altro possono risiedere in zone di memoria anche molto distanti. Ciò significa che lo heap, diversamente dallo stac, rappresenta uno spazio di memoria frammentato, dove a zone di memoria libere si alternano zone riservate a uno o più oggetti. Ad ognuno di essi è associato un riferimento, che rappresenta appunto l'indirizzo della zona di memoria...

Conclusione : Stack,Allocazione e Deallocazione

Come promesso, pubblico il post conclusivo sull'uso dello stack e la deallocazione dello spazio occupato dalle variabili. Sullo stack vengono allocati tutti gli oggetti locali e cioè le variabili locali, dai blocchi ai costrutti, i parametri e i risultati intermedi di espressioni. Lo stack è quindi caratterizzato: da un'estrema efficienza,sia nell'allocazione che nella deallocazione di oggetti (poichè entrambe si traducono nella sola modifica dello stack pointer). dal fatto che l'ordine di allocazione e di deallocazione degli oggetti è predeterminato e dipende dall'ordine nel quale essi sono dichiarati. ...

Deallocazione dello spazio occupato dalle variabili

Ho scritto questo post come continuo di questo post. Ogni programma ha il suo stack, che viene diviso tra tutti i metodi (se l’applicazione ha un solo thread). In un dato momento esso comprende solamente gli oggetti locali dei metodi al momento in esecuzione. Ciò indica che quando un metodo si completa, le sue variabili locali, in precedenza allocate nello stack, vengono rimosse. In realtà questo congegno riguarda in generale qualsiasi variabile locale a un blocco o a un costrutto. Quando il flusso di esecuzione entra nel blocco le variabili locali danno inizio al proprio ciclo di vita e vengono...

Uso dello Stack

Lo Stack è una memoria nella quale vengono allocate tutte le variabili locali, nell'ordine nel quale sono dichiarate. Ad esempio, l'esecuzione del seguente codice 1: static void Metodo() 2: { 3: int a = 10; 4: double d; 5: } produce l'allocazione di 12byte nello stack, 4 per la variabile int e 8 per la variabile double. Ecco come si presenta lo stack pima e dopo l'allocazione Nella...