Allocazione automatica della memoria
Le variabili automatiche sono variabili locali in un blocco di istruzioni.
Esse sono automaticamente allocate sullo stack quando si entra in quel blocco di codice; parallelamente, vengono distrutte quando si esce dal blocco stesso.
Ad esempio, si consideri il seguente codice in linguaggio C:
int main(void)
{
{
int a;
a = 10;
}
{
int b;
printf("b = %d\n", b);
}
}
Utilizzando il compilatore gcc, si otterrà come risultato:
b = 10
perché la stessa locazione di memoria che era stata allocata per a viene poi utilizzata per allocare b, all'ingresso del secondo blocco.
Le variabili automatiche hanno un valore indefinito quando sono dichiarate (in gergo si dice che sono sporche), perciò è buona abitudine inizializzarle con valori validi prima del loro utilizzo.
La maggior parte dei compilatori moderni, se invocati con i giusti parametri, riconosce l'uso di variabili non inizializzate ed avverte l'utente del possibile errore.