Le problème ne vient pas de malloc mais plutôt de sizeof.
En effet, sizeof sait mesurer la taille des données brutes qu'on lui donne en paramètre, toutefois il ne peut pas présupposer de la taille d'un déréférencement de pointeur. Pour lui un pointeur pointe au moins sur un bloc de mémoire de la taille du mot de base du compilateur (ex. 8 pour un processeur 64 bits).
Ainsi, l'exemple que tu donnes par de toute façon dans la mauvaise direction quant à ton utilisation de sizeof.
Je te conseille plutôt un écriture du style pour t'en sortir.
# hum...
Posté par s[e]th & h[o]lth (site web personnel) . En réponse au message Malloc et pointeur sur structure anonyme. Évalué à 8.
Le problème ne vient pas de malloc mais plutôt de sizeof.
En effet, sizeof sait mesurer la taille des données brutes qu'on lui donne en paramètre, toutefois il ne peut pas présupposer de la taille d'un déréférencement de pointeur. Pour lui un pointeur pointe au moins sur un bloc de mémoire de la taille du mot de base du compilateur (ex. 8 pour un processeur 64 bits).
L'exemple simple ci-dessous pourra éventuellement t'éclairer.
Ainsi, l'exemple que tu donnes par de toute façon dans la mauvaise direction quant à ton utilisation de sizeof.
Je te conseille plutôt un écriture du style pour t'en sortir.
Afin de corriger ta ligne
en
car manifestement, celle-ci est fausse et ci cela fonctionne sans segfault chez toi, c'est plutôt étrange...
Un conseil pour finir, évite les typedef de pointeur, c'est un truc à s'embrouiller le cerveau pour pas grand chose.