Pb affectation champs d'une struct passée en pointeur
Bonjour,
j'ai un ptit souci avec une struct passée en pointeur en argument d'une méthode
et en fait, elle n'est pas mise à jour au retour,
je sais pas trop comment ça se fait...
donc si vous pourriez me donner un ptit coup de pouce ;) ...
Alors déjà, attention,
ça peut paraître un peu barbare...
mais j'utilise des types définis dans une librairie C...
Donc, j'ai 2 structures :
Code:
1 2 3 4 5 6 7 8 9
| struct Message{
unsigned char nature;
char nomUtilisateur[MAX_SIZE];
unsigned short periode;
unsigned char data;};
struct Unite{
unsigned short longueur;
Message mess;}; |
J'ai une méthode qui me sert à remplir une structure 'Unite' :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| MaMethode(unsigned short *lgMess, Message *mess)
{
unsigned short lgData;
unsigned char *donnees;
//...calcul de la longueur...
*lgMess = sizeof(Message) - 1 + lgData;
// allocation de la structure du message
mess = (Message*) malloc(*lgMess);
(void) memset(mess, 0, *lgMess);
// affectation des champs de la structure
mess->nature = ...
StringCbCat(mess->nomUtilisateur, MAX_SIZE, "nomUtilisateur");
donnees = new unsigned char[lgData];
//... remplissage du tableau...
//copie dans le message
memcpy(&mess->data, donnes, lgData);
delete[] donnees;
} |
Et donc, quand j'appelle cette méthode :
Code:
1 2 3
| Unite monUnite;
MaMethode(&monUnite.longueur, &monUnite.mess); |
eh ben, le champ 'longueur' est bien à jour
mais aucun champ de la struct 'mess':(
Pourtant, quand je rentre en debug,
ça paraît tout bien...
Alors alors??
z'avez des pistes?...