Bonjour. J'ai créer une structure dans mon .h:

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;
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 : 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);
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
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 !