Bonjour. J'ai créer une structure dans mon .h:
Dans mon main, j'ai initialisé une variable de type chose, que j'ai passé a une fonction void de maniére a pouvoir modifier cette structure dans la fonction (je croit qu'on dit en "paramétre d'entrée/sortie"):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 struct chose { int x; // pour l'exemple int y; }; typedef struct chose chose;
MAIN:
Et voici le code de "fonction1" et de "fonction2":
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 chose machose; int valeur; fonction1(&machose); valeur = machose.x; printf("%d", valeur);
C'est a ce moment que j'ai un problème, même si sur cet exemple c'est inutile, je veut passer ma structure a une autre fonction que j'appelle dans fonction 1, mais de façon a pouvoir toujours modifier ses valeurs a l'intérieur de fonction2. Or, je n'y parvient pas, j'ai donc du faire une erreur dans les paramètres de la 2éme fonction ? Ou alors, il s'agit d'une erreur dans la notation de l’accès au champ.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 void fonction1(chose *p_machose) { (p_machose->x) = 5; fonction2(p_machose); // c'est déjà une adresse, je ne met pas de &, erreur? } void fonction2(chose p_machose) { // erreur? (p_machose->x)++; }
Ça ne doit pas être très compliqué mais je n'y arrive pas... Sauriez vous résoudre mon problème ?
Merci d'avance et bon dimanche !
Partager