Passage d'une structure en argument de fonction
Bonjour. J'ai créer une structure dans mon .h:
Code:
1 2 3 4 5
| struct chose {
int x; // pour l'exemple
int y;
};
typedef struct chose chose; |
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"):
MAIN:
Code:
1 2 3 4 5 6 7
| chose machose;
int valeur;
fonction1(&machose);
valeur = machose.x;
printf("%d", valeur); |
Et voici le code de "fonction1" et de "fonction2":
Code:
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)++;
} |
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.
Ç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 !