• [^] # Re: Bizarre

    Posté par . En réponse au message Probleme d'ecriture dans un STRUCT de int .. Évalué à 3.

    Avec un peu de chance, si ton short fait bien 2 octets et ton int 4 (ce qui n'est pas obligatoire), il a écrit l'octet de poids faible au bon endroit (donc tu retrouves la bonne valeur), et les 3 autres dans un "ailleurs" qui n'est pas trop sensible pour ne pas planter le programme.
    Si ton int fait vraiment 4 octets, je soupçonne très fortement que, en raison de l'alignement mémoire de la structure, un des trois octets nuls est tombé sur l'octet de poids fort du short et les deux autres octets sont tombés dans la zone de bourrage.

    Quoi qu'il en soit, il s'agit très sûrement d'un comportement indéfini (je n'ai pas vérifié la norme) qui tombe en marche par miracle de l'alignement et de l'endianness.

    Il est aussi possible que sizeof(short) == sizeof(int) et alors on ne se pose même plus de question...