URL: https://linuxfr.org/forums/programmation-c--2/posts/probl%C3%A8me-de-struct-et-dalignement Title: problème de struct et d'alignement Authors: RB Date: 2007年01月04日T16:19:23+01:00 Tags: Score: 0 Dans ce petit programme, j'ai une erreur étrange (pour moi): #include <stdio.h>; typedef struct { £spaces£ £/spaces£int row; £spaces£ £/spaces£int col; } *Pos; typedef struct { £spaces£ £/spaces£char* t; £spaces£ £/spaces£int a; £spaces£ £/spaces£int b; £spaces£ £/spaces£int c; £spaces£ £/spaces£Pos cur; } *Doc; int main(int argc, char *argv[]) { £spaces£ £/spaces£Doc doc = malloc(sizeof(Doc)); £spaces£ £/spaces£Pos cur = malloc(sizeof(Pos)); £spaces£ £/spaces£cur->;row = 1; £spaces£ £/spaces£doc->cur = cur; £spaces£ £/spaces£printf("val: %d", doc->;cur->;row); £spaces£ £/spaces£return 0; } Me donne: % gcc test.c && ./a.out val: 134520856 Si je supprimme a, b ou c de la struc, le résultat correct de 1 revient. J'aimerais comprendre pourquoi ce problème arrive (alignement ?) et qu'est ce que je fais de faux dans mon code. Voili, merci d'avance. PS: désolé pour les caractères plus grand et plus petit apparaissant faux, je n'arrive pas à les faire sortir justes...

AltStyle によって変換されたページ (->オリジナル) /