Siano dichiarate tre variabili intere a, b, c, ed un puntatore p con le dichiarazioni
int a, b, c; int *p;Cosa succede all’esecuzione del seguente codice:
for(i=0, p=&a; i < 3; p++) *p=-1;
- a, b, c vengono inizializzate al valore -1;
- il valore -1 viene assegnato certamente ad a, e chissà a quale altra variabile in memoria, con risultati imprevedibili;
- il compilatore segnala un errore (quale?);
- l'esecuzione viene abortita per un errore run-time.
Soluzione b (il valore -1 viene assegnato certamente ad a, e chissà a quale altra variabile in memoria, con risultati imprevedibili;)
*p contiene inizialmente l'indirizzo di a ma poi si aggiorna e non è certo che punti correttamente a b e a c.