Bonjour,
Soit le code ci-dessous :
[Dans essai2, j'ai mis le type double comme j'aurais pu mettre n'importe quel autre type.] Pour chaque exemple, les adresses qui s'affichent sont identiques. Ma question est : les fonctions essai1 et essai2 ou tout autre fonction similaire me renverront-elles toujours a, quel que le type de l'objet vers lequel a pointe ?
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
27
28
29
30
31
32
33 #include <stdio.h> void *essai1(void *p) { void **q = (void **)p; return (*q); } void *essai2(void *p) { double **q = (double **)p; return (*q); } int main(void) { {/* 1er exemple */ int x = 4; int *a = &x; printf("a=%p\n", (void *)a); printf("*p=%p\n", essai1(&a)); printf("*p=%p\n\n", essai2(&a)); } {/* 2eme exemple */ char *a = "abCd"; printf("a=%p\n", a); printf("*p=%p\n", essai1(&a)); printf("*p=%p\n\n", essai2(&a)); } return 0; }
Merci,
Candide
Partager