semplicemente p e p2 sono passate per copia, qundi non puoi modificare il loro valore ma solo il valore da loro puntato... puoi fare per esempio *p1=*p2 o viceversa!!!codice:void funzione(int *p, int *p2){ p2 = p; }
è come se facessi:
i valori non vengono scambiati!codice:void funzione(int a, int b){ a= b; //??????????????????? }
se vuoi scambiare gli oggetti puntati dai puntatori fai:
codice:void funzione(int *&p, int *&p2){ //oggetti passati per riferimento p2 = p; }