[Débutant] Pointeurs et fonctions
Salut a tous,
je débute en C, et je me pose une question a propos des pointeurs utilisés dans les fonctions.
J'ai deux pointeurs d'entier, et je souhaite en fait échanger ces pointeurs: l'un pointerai la valeur pointée par l'autre et vice versa.
Pour cela j'ai le code suivant:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
#include <windows.h>
#include <stdio.h>
void echange(int *i, int *j) {
printf("\n *i = %d , i = %d", *i,i);
int temp = (int)i ;
i = j ;
j = temp ;
}
int main(void) {
int i = 6 ;
int j = 8 ;
int *pi = &i ;
int *pj = &j ;
printf("\nAvant échange: *pi = %d , *pj = %d", *pi,*pj);
echange(pi,pj);
printf("\nAprés échange: *pi = %d , *pj = %d", *pi,*pj);
system("pause");
return 0 ;
} |
Seulement ca ne marche pas et je ne comprend pas pourquoi... ca n'échange rien, pourtant si j'ai bien compris comment marchent les pointeurs, *pi représente la valeur pointée, et i représente l'adresse ou pointe le pointeur... et donc en échangeant i et j on devrai échanger les adresse pointées...
Si quelqu'un pouvai m'expliquer ce que je n'ai pas compris :)
Merci d'avance ;)