PDA

View Full Version : [C++]Domanda sui puntatori (esercizio)


ciuaz!!!
05-09-2008, 09:31
int x=2, y=3, z=4;
int *p, *q, **P, **Q;
P=&p ;
Q=P ;
*P=q ;
p=&x ;
q=&y ;
**P=z ;
cout<< *p<<*q<<**P<<**Q ;

a) Contiene un errore
b) stampa 4 4 4 4
c) stampa 4 3 3 4
d) stampa 4 3 4 4

P->p OK
Q->P OK
*P cioè dereferenzio ottenendo p=q cioè p prende l'R-valore di q che è un indirizzo indefinito. p-> ?
p=&x (p punta a qualcosa di definito, non è più penzolante come prima)
[...]

Ecco ora io vorrei sapere se il programma è corretto o meno. Alla fine stampa 4 3 4 4 però c'è quell'assegnazione *P=q che per me è un errore.
Ma è anche vero che l'errore è "corretto" subito dopo da p=&x e che alla fine stampa tranquillamente 4 3 4 4 (non ci sono dangling pointers o altro).
Qual'è la risposta esatta?