Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 int cpt_jouer(char * pTab) //compte le nombre de coup joués dans la partie { int i; int cpt=9; .... return cpt; }Non, les variables locales pTab, i et cpt sont détruites en sortie de la fonction. Par contre, le return cpt te permet de récupérer la valeur qu'avait cpt avant sa destruction. Donc le code est Ok.est ce que la variable "cpt" existe toujours, après l'appel de la fonction???
pX est un argument de la fonction : Au moment de l'appel de cette fonction, une variable locale pX est créée et initialisée avec la valeur placée dans l'appel. De cette valeur, tu ne fais rien puisque la première chose que tu écris est px =.... Ce n'est donc pas un argument. On devrait avoir :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 int get_x(char * pInput, int pX) //parse X et Y { pX = pInput[6] - '0'; return pX; }
ou simplement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 int get_x(char * pInput) //parse X et Y { int pX = pInput[6] - '0'; return pX; }
avec en appel
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 int get_x(char * pInput) //parse X et Y { return pInput[6] - '0'; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 int test_jouer(char * pInput) { int x, y; x = get_x(pInput); y = get_y(pInput); return ((x>0 && x<4) && (y>0 && y<4)); }Pour modifier une variable du code appelant une fonction, en dehors de l'utilisation du return, il faut connaître son adresse. Ici, tu ne transmet pas l'adresse de pX et pY mais leur valeur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 void msg_saisi(int pX, int pY) //invite de saisie { printf("\nSaisie case a jouer (X Y) : "); scanf("%d %d", &pX, &pY); }
avec un appel du genre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 void msg_saisi(int * ppX, int* ppY) //invite de saisie { printf("\nSaisie case a jouer (X Y) : "); scanf("%d %d", ppX, ppY); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part msg_saisi(&pX,&pY);
Partager