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.

Voci correlate modifica