L' ho corretto considerando anche l' indentazione, che era un casino:
Se P si trova all' indirizzo mille, ciò non ha nessun legame con le stringhe che si trovano in P[0],...,P[5].codice:int main(void) { char *P[] = {"gennaio", "febbraio","marzo", "aprile", "", ""}; char *A ; char **B; char * E [5] ; A = P[3] ; B = &A ; E[0] = B ; printf("%s\n", A); printf("%s\n", *E[0]); return 0; }
Se la stringa P[0] si trova all' indirizzo 2000 nell' area di sola lettura, P contiene l'indirizzo 2000 come valore, ma il puntatore non è memorizzato all' indirizzo 2000.
Deferenziando E[0], che contiene l' indirizzo in cui è contenuto il puntatore che punta alla stringa P[3], ottieni proprio l' indirizzo della stringa P[3].

