• [^] # Re: Bizarre

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

    les x86 sont little-endian (les octets de poids faibles d'un "int" sont en 1er en mémoire), les power- sont en bigendian.
    Donc quand ton scanf ecrit dans ce qu'il croit etre un pointeur sur int, sur x86 il va écrire "octet 1 octet 2 octet 3 octet 4", qui vont ecrire sur "x" et "y". Sur power il va ecrire "octet 4 octet 3 octet 2 octet 1".
    Puis il va ecrire sur "y et z", puis sur "z et au dela".
    Sur tes tests avec de petites valeurs, octets 2-4 valent 0, et seul l'octet 1 contient entre 1 et 12.
    Avec les écrasements successifs des "%d %d %d" tu vas écrire dans x y z:
    "octet 1 octet 2 , 1 - 2, 1-2" sous x86 (qui a donc la chance de donner la meme valeur si elle etait < 65535) et "3-4, 3-4, 3-4" sous power (donc que des octets nuls)

    Si vous faisiez des tests avec comme valeur "65536", sous x86 la sortie ne donnerait que des 0, et sous power, que des 1.