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 : Sélectionner tout - Visualiser dans une fenêtre à part
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