Bonjour,
J'ai écrit ce petit bout de code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
 
#include <stdio.h>
int main()
{
int x = 10;
int * px = &x;
int *ppx = &px;
 
printf("px: %p -- &x: %p -- ppx: %p -- *ppx: %p\n", px, &x, ppx, *ppx);
 
return 0;
}
les affichages de px, &x, ppx sont ceux que j'attendais, mais pour *ppx je devrais retrouver l'adresse de &x mais ce n'est as le cas.

De plus à la compilation avec gcc (linux debian )j'ai:

gcc -Wall pointpoint1.c -o pointpoint1

pointpoint1.c: In function 'main':
pointpoint1.c:8: warning: initialization from incompatible pointer type
pointpoint1.c:10: warning: format '%p' expects type 'void *', but argument 5 has type 'int'

et ./pointpoint1 donne:

px: 0x7fff71f28574 -- &x: 0x7fff71f28574 -- ppx: 0x7fff71f28568 -- *ppx: 0x71f28574

Merci d'avance pour une explication, j'ai vraiment cherché dans toute la FAQ j'ai bien vu des exemples de pointeurs de pointeurs avec les structures
ça fonctionne mais dans ce cas je ne comprend pas pourquoi ça ne marche pas ?

rutabagas.