Non. sizeof(int*), sizeof(toto*), sizeof(n_importe_quoi *) est égale à sizeof(void *).
Bah, maintenant que tu as la norme tu vas pouvoir me montrer à quel chapitre/paragraphe ça dit ça :-D. Te fatigues pas, tu vas pas trouver, ça n'est pas le cas. Rien (dans la norme) n'indique que les pointeurs de différents types ont la même taille. Par exemple certaines implémentations tordues peuvent avoir un sizeof (char *) plus grand que sizeof (int *) parce que l'accés mémoire est plus compliqué pour adresser un byte tout seul plutôt qu'un int aligné. Ou un pointeur de fonction peut avoir une taille différente de celle des pointeurs de données.
Ceci marche car "struct list *" est connu en taille avant même sa déclaration
c'est parce que tous les pointeurs vers des struct ont la même taille
et la taille est sizeof (void *)
pas nécessairement.
[^] # Re: Petites precisions
Posté par Vivi . En réponse au journal J'adore Linus. Évalué à 1.
Non. sizeof(int*), sizeof(toto*), sizeof(n_importe_quoi *) est égale à sizeof(void *).
Bah, maintenant que tu as la norme tu vas pouvoir me montrer à quel chapitre/paragraphe ça dit ça :-D. Te fatigues pas, tu vas pas trouver, ça n'est pas le cas. Rien (dans la norme) n'indique que les pointeurs de différents types ont la même taille. Par exemple certaines implémentations tordues peuvent avoir un sizeof (char *) plus grand que sizeof (int *) parce que l'accés mémoire est plus compliqué pour adresser un byte tout seul plutôt qu'un int aligné. Ou un pointeur de fonction peut avoir une taille différente de celle des pointeurs de données.
Ceci marche car "struct list *" est connu en taille avant même sa déclaration
c'est parce que tous les pointeurs vers des struct ont la même taille
et la taille est sizeof (void *)
pas nécessairement.