Bonjour,
Je rencontre quelques complications pour remplir une structure via une fonction.
Je procède de la manière suivante :
Déclaration de la structure : struct caisse_t { ...Mesh* mesh;
...Node* node};
Déclaration de la structure : struct Item_t { caisse_t caisse[NUMBER] };
Je crée une variable : Item_t level_items;
Dans les init du main je passe la variable level_items à ma fonction :
void create_item(Item_t item)
{
item.caisse[0].mesh = Chargement du mesh
item.caisse[0].node = Chargement du node
}
Ensuite je regarde les valeur inscrites dans item.caisse[0] et là j'ai tout à 0.
Si dans la fonction je travail directement avec "level_items" (déclaré en global) plutôt que le paramètre "item" çà fonctionne.
Dans tous les cas le mesh et le node sont chargés.
Je ne comprends pas pourquoi je ne peux pas remplir ma structure en passant par les paramètres de la fonction.
Hors ligne
c'est normal, tu ne passe pas le paramètre par référence ou par pointeur, donc en fait la structure est copier l'or de l'apelle dans la stack, c'est donc un nouvel objet qui n'a aucune relation
il suffi donc de mettre l'opérateur "&":
sinon tu utilise des pointeurs
Hors ligne
Ha super ! J'ai souvent ce problème, maintenant je comprends d'où çà vient.
Je corrigerai çà ce soir.
Encore merci de t'on aide.
Hors ligne