Allocazione automatica della memoria

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca

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 | modifica wikitesto]