Allocazione delle variabili

Lo spazio di allocazione per le variabili ha di norma una dimensione fissata, dobbiamo prevedere però una cardinalità grande abbastanza per tutte le esecuzioni del programma

Il C supporta l’allocazione dinamica della memoria: possiamo allocare la memoria durante l’esecuzione del programma e assegnare l’indirizzo del blocco di memoria allocato da un puntatore. Questo permette di creare strutture dati la cui dimensione varia durante l’esecuzione, in funzione delle necessità

Allocazione dinamica: funzioni

Il file <stdlib.h> dichiara tre funzioni per l’allocazione dinamica della memoria:

Variabili locali e variabili globali

Le variabili dichiarate all’interno di funzioni sono dette locali e sono visibili solo all’interno della funzione in cui sono dichiarate. Tali variabili sono dette automatiche, perchè vengono allocate in memoria a tempo di esecuzione (dell’istruzione dichiarativa) e deallocate al termine del blocco in cui sono dichiarate

Le variabili dichiarate esternamente alle funzioni sono dette globali e sono visibili a tutte le funzioni la cui definizione segue la dichiarazione della variabile nel file sorgente. Tali variabili sono dette statiche, perchè la loro allocazione in memoria avviene all’atto del caricamento del programma, e la loro deallocazione al termine del programma

Le variabili globali possono essere usate per scambiare informazioni tra sottoprogrammi

Scope, visibilità, durata

Tre aree di allocazione