tes deux malloc utilisent donc le sizeof de ces pointeurs (soit 4 octets sur une machine 32 bits)
La taille d'un pointeur n'est pas forcément 4 octets, même si c'est usuel sur les architectures 32 bits (au regard de la norme C, ça peut être 1, 2, 8, 15...).
Tu pourrais corriger rapidement avec "malloc(sizeof(&Doc))" pour avoir la taille réellement nécessaire; mais je trouve que ça fait beaucoup de circonvolutions et que ça embrouille le cerveau.
Petite erreur: "*doc". "&Doc" ne compilera pas (on ne peut prendre l'adresse d'un type).
Définis plutot tes types de structure en tant que structure ("typedef struct {...} Doc" au lieu de "*Doc") et déclare des variables explicitement pointeurs
(Doc *doc, Pos *cur;), ce sera plus clair.
C'est une question de style (voir mon autre post plus bas)...
[^] # Re: Type struct != type pointeur
Posté par alf . En réponse au message problème de struct et d'alignement. Évalué à 3.
Petite erreur: "*doc". "&Doc" ne compilera pas (on ne peut prendre l'adresse d'un type).
C'est une question de style (voir mon autre post plus bas)...