Ciao,
sto scrivendo un semplice programma in c che dati due interi ne scambia l'indirizzo per mezzo di due puntatori.
Se il codice è il seguente (p e q sono i puntatori) non ho problemi:
codice:
stampa(p,q);
swap(p,q);
stampa(p,q);
infatti inserendo per esempio 3 e 5 ottengo:
codice:
p: contenuto: 3 , indirizzo 0xbf907130.
q: contenuto: 5 , indirizzo 0xbf907134.
p: contenuto: 5 , indirizzo 0xbf907130.
q: contenuto: 3 , indirizzo 0xbf907134.
Se però inserisco delle printf in questo modo:
codice:
printf( "Prima dello scambio:\n);
stampa(p,q);
swap(p,q);
printf("Dopo lo scambio:\n");
stampa(p,q);
ottengo:
codice:
Prima dello scambio:
p: contenuto: 14617120 , indirizzo 0xbfc988e0.
q: contenuto: 134514938 , indirizzo 0xbfc988e4.
Dopo lo scambio:
p: contenuto: 134514938 , indirizzo 0xbfc988e0.
q: contenuto: 14617120 , indirizzo 0xbfc988e4.
non capisco perchè...mi succede lo stesso se utilizzo fprintf..