Variable semble changer seule ?!
vincemeister514
-
sambia39 Messages postés 610 Date d'inscription Statut Membre Dernière intervention -
sambia39 Messages postés 610 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai le code suivant :
le retour de la console est ceci :
cela ne devrait-il pas être
?
j'ai beau chercher à bidouiller je ne comprend pas pourquoi le y de p1 est à 7.. je suis certains que c'est une petite erreur stupide mais je n'arrive pas a mettre la main dessus.
merci d'avance.
J'ai le code suivant :
#include <iostream>
#define POSITION_DATA 1
#define X_AXIS 1
#define Y_AXIS 0
using namespace std;
typedef int dot_coordinates[POSITION_DATA];
void set_coordinates(dot_coordinates* dot,int x, int y);
int main()
{
dot_coordinates dot1,dot2,dot3,dot4;
set_coordinates(&dot1,0,0);
set_coordinates(&dot2,7,0);
set_coordinates(&dot3,0,7);
set_coordinates(&dot4,7,7);
printf("\np1 : x=%d y=%d\n",dot1[X_AXIS],dot1[Y_AXIS]);
printf("\np2 : x=%d y=%d\n",dot2[X_AXIS],dot2[Y_AXIS]);
printf("\np3 : x=%d y=%d\n",dot3[X_AXIS],dot3[Y_AXIS]);
printf("\np4 : x=%d y=%d\n",dot4[X_AXIS],dot4[Y_AXIS]);
return 0;
}
void set_coordinates(dot_coordinates* dot,int x, int y)
{
*dot[X_AXIS] = x;
*dot[Y_AXIS] = y;
}
le retour de la console est ceci :
p1 : x=0 y=7
p2 : x=7 y=0
p3 : x=0 y=7
p4 : x=7 y=7
cela ne devrait-il pas être
p1 : x=0 y=0
p2 : x=7 y=0
p3 : x=0 y=7
p4 : x=7 y=7
?
j'ai beau chercher à bidouiller je ne comprend pas pourquoi le y de p1 est à 7.. je suis certains que c'est une petite erreur stupide mais je n'arrive pas a mettre la main dessus.
merci d'avance.
A voir également:
- Variable semble changer seule ?!
- Changer dns - Guide
- Changer carte graphique - Guide
- Changer l'orientation d'une seule page word - Guide
- Changer wifi chromecast - Guide
- Changer clavier qwerty en azerty - Guide
1 réponse
Bonjour
il y a une petite erreur dans ton code sources, tu as oublié l'en-tête
j'obtiens ceci
il est préférable également d'utiliser les fonctions du langage C++ , que le langage C et dans ton précédent code c'était pas le cas donc l'en-tête
à bientôt
il y a une petite erreur dans ton code sources, tu as oublié l'en-tête
#include <cstdio>pour l'utilisation de
printf. Et comme résultat de ton code
#include <cstdio> #define POSITION_DATA 1 #define X_AXIS 1 #define Y_AXIS 0 typedef int dot_coordinates[POSITION_DATA]; void set_coordinates(dot_coordinates* dot,int x, int y){ *dot[X_AXIS] = x; *dot[Y_AXIS] = y; } int main( void ){ dot_coordinates dot1,dot2,dot3,dot4; set_coordinates(&dot1,0,0); set_coordinates(&dot2,7,0); set_coordinates(&dot3,0,7); set_coordinates(&dot4,7,7); printf("\np1 : x=%d y=%d\n",dot1[X_AXIS],dot1[Y_AXIS]); printf("\np2 : x=%d y=%d\n",dot2[X_AXIS],dot2[Y_AXIS]); printf("\np3 : x=%d y=%d\n",dot3[X_AXIS],dot3[Y_AXIS]); printf("\np4 : x=%d y=%d\n",dot4[X_AXIS],dot4[Y_AXIS]); return ( 0 ); }
j'obtiens ceci
Après, je n'ai pas cherché bien loin vue que c'est le résultat que tu souhaite.
p1 : x=0 y=0
p2 : x=7 y=0
p3 : x=0 y=7
p4 : x=7 y=7
il est préférable également d'utiliser les fonctions du langage C++ , que le langage C et dans ton précédent code c'était pas le cas donc l'en-tête
#include <iostream>et certaine macros comme
using namespace std;serve pas grand chose à part des ligne en plus.
à bientôt