Bonjour,
pour connaitre la taille d'un pointeur, c'est bien
je l'ai vu également écrit comme ça mais le résultat diffère :Code:
1
2 int *p; sizeof(p);
ou encore :Code:sizeof(p)/sizeof(int *);
Code:sizeof(int*);
Version imprimable
Bonjour,
pour connaitre la taille d'un pointeur, c'est bien
je l'ai vu également écrit comme ça mais le résultat diffère :Code:
1
2 int *p; sizeof(p);
ou encore :Code:sizeof(p)/sizeof(int *);
Code:sizeof(int*);
Pourquoi veux-tu connaitre la taille d'un pointeur ?Citation:
Envoyé par oranoutan
donne 4 ce qui est la bonne taille ( sous VC++ /Win XP)Code:
1
2 int *p; sizeof(p);
donne 1 ce qui n'est pas la bonne tailleCode:sizeof(p)/sizeof(int *);
Pour le fun :DCitation:
Envoyé par Mat.M
Les paranthèses ne sont utiles que quand sizeof est utilisé avec un type
Code:
1
2
3
4
5 int *p = NULL; sizeof p ou sizeof (int *)
bon à savoir.
merci.
arf, c'est encore moua.
j'aimerai voir la taille à l'adresse de 'p' avant et après l'allocation mais ça ne semble pas être comme ça.Code:
1
2
3
4
5
6
7
8
9
10
11 char *p; printf("%i\n", sizeof *p); p = malloc(50); if (p==NULL) puts ("pas bon"); printf("%i\n", sizeof *p); // 1? free(p);
C est normal que ca donne 1
p est un pointeur de caractere ... Et un caractere a comme taille 1 byte .... TADAAA :P
Essaie de faire sur de le faire sur un pointeur d entier, tu devrais obtenir 4 (... Enfin tout depend du proc ...)
PS : par contre si tu fais un sizeof sur un tableau statique, le resultat sera len * sizeof(n) (len etant la taille du tableau et n la taille de la donnée du tableau)
oui 1 char -> 1 octet mais les 50 octets alloués dans l'espace de p comment on peut-on les retrouver ?
Salut,
Il n'est pas possible de récupérer la taille de l'espace alloué avec le pointeur.
On ne peux pas. C'est à toi de t'en souvenir. Une structure permet justement d'organiser les données :Citation:
Envoyé par oranoutan
Code:
1
2
3
4
5
6 struct tab_dyn { T *a; size_t size; };