Bonjour,
J'utilise la struct suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 typedef struct { unsigned char t; int a; int b; unsigned char e; unsigned char f; unsigned char g; } t_montype; .../... void FonctionAppellee(t_montype *m) { ..../.... } void FonctionAppelante() { t_montype p; // initialise les champs de p .../... // appelle FonctionAppellee FonctionAppellee(&p);
En fait, quand on regarde le contenu de la strcuture p AVANT l'appel, il est OK.
Quand on est dans FonctionAppellee, il n'est pas bon (mais la mémoire est OK). En fait, il semble que gcc ne voit pas la structure de la même manière... la mémoire est bonne, mais les m->e, m->a ... ne sont pas bons
Quand on sort de l'appel, il est OK à nouveau
Si je déplace les 3 unsigned char e, f, g après t, le problème disparaît
C'est très embêtant de devoir "penser" à aligner les structs, normalement, le compilateur nos décharge de ce travail.
Y'aurait-il une option de compilation qui perturberait ou qui manquerait ?
Merci
Partager