C Language Leggere un oggetto non inizializzato che non è supportato dalla memoria


Esempio

C11

La lettura di un oggetto causerà un comportamento indefinito, se l'oggetto è 1 :

  • inizializzata
  • definito con durata di archiviazione automatica
  • il suo indirizzo non è mai stato preso

La variabile a nell'esempio seguente soddisfa tutte queste condizioni:

void Function( void )
{
    int a;
    int b = a;
} 

1 (Citato da: ISO: IEC 9899: 201X 6.3.2.1 Lvalues, matrici e designatori di funzioni 2)
Se il lvalue designa un oggetto di durata di archiviazione automatica che avrebbe potuto essere dichiarato con la classe di archiviazione del registro (non ha mai avuto l'indirizzo preso), e quell'oggetto non è inizializzato (non dichiarato con un inizializzatore e non è stato eseguito alcun incarico prima dell'uso ), il comportamento non è definito.