Bonjour,
J'ai écrit ce petit bout de code :
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.
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; }
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.
Partager