[PB] Tableau de structures

Tableau de structures [PB] - C++ - Programmation

Marsh Posté le 07-05-2005 à 22:46:34    

Bonsoir !
 
Je vous soumets un problème qui me prend la tête depuis plusieurs heures et qui soulève mon incompréhension.
 
J'ai une structure :

Code :
  1. struct Choix{
  2. int ligne;
  3. int colonne;
  4. Orientation sens;
  5. };


 
J'ai un tableau de structures :

Code :
  1. Choix T[4];


 
Dans une méthode, je remplis ce tableau. J'ai vérifié au debugger à la sortie de cette fonction j'ai bien mon tableau rempli.
J'ai ensuite une autre méthode qui doit utiliser les données de ce tableau. Seulement voilà, cette méthode fonctionne mal. Après vérification au debugger, dans ma méthode je n'ai pas mon tableau rempli. Au lieu d'avoir un T[], j'ai un T pointeur il semblerait. Selon ce que je sais, il me semble que lorsque l'on passe un tableau en paramètre il s'agit en fait d'un pointeur. Mais je sais qu'il y a quand même un problème puisque dans la méthode avec laquelle je remplis le tableau, dans la fenêtre Variables du debugger d'Eclipse j'avais les différents postes de mon tableau. Alors que là, je n'ai qu'un "T" avec un symbole pointeur. Il semble bien que c'est un problème de paramètres mais je n'arrive pas à trouver où ça coince !
 
Je me prends la tête dessus depuis un moment... Je ne trouve vraiment pas pourquoi je n'ai pas accès à mon tableau...
 
Voici le prototype de ma méthode :

Code :
  1. void Deplacement (int choix, const int nbchoix, const Choix T[], const Color & c);


 
Le début de ma méthode :

Code :
  1. void Plateau::Deplacement(int choix, const int nbchoix, const Choix T[], const Color & c){
  2. while (choix>nbchoix || nbchoix<0){
  3.  cout<<endl<<"Choix impossible"<<endl;
  4.  cout<<"Veuillez entrer un nouveau choix : ";
  5.  cin>>choix;
  6. }
  7. for (int i=0 ; i<3 ; ++i){
  8.  for (int j=0 ; j<3 ; ++j){
  9.   if (P_[i][j].c==c)
  10.    P_[i][j].c=VIDE;
  11.  }
  12. }
  13. // etc etc


 
L'appel de la méthode :

Code :
  1. Jeu.Deplacement(choix, nbchoix, T, RED);


 
Merci de m'apporter votre aide rapidement. A+ !

Reply

Marsh Posté le 07-05-2005 à 22:46:34   

Reply

Marsh Posté le 07-05-2005 à 23:20:11    

truman a écrit :


Code :
  1. if (P_[i][j].c==c)
  2. P_[i][j].c=VIDE;




 
Il sort d'où P_ ?


Message édité par Tarabiscote le 07-05-2005 à 23:20:42
Reply

Marsh Posté le 08-05-2005 à 11:09:48    

Code :
  1. enum Color {RED,BLUE,WHITE,VIDE};
  2. struct Case {
  3. Color c;
  4. int possibilites;
  5. };


 

Code :
  1. class Plateau {
  2.         //public...
  3.         private :
  4. Case P_[3][3];
  5. }


 
Mais je ne pense pas que l'erreur soit à ce niveau-là...  :(

Reply

Marsh Posté le 08-05-2005 à 19:08:33    

Si tu montrais comment ton tableau est déclaré/défini avant l'appel et l'endroit dans ta fonction où tu l'utilises, on pourrait peut-être t'aider.
 
PS :
 

Citation :

Mais je ne pense pas que l'erreur soit à ce niveau-là...  :(


 
On est donc d'accord le code que tu as posté ne nous avance pas pour trouver l'erreur.


Message édité par Tarabiscote le 08-05-2005 à 19:16:06
Reply

Marsh Posté le 08-05-2005 à 19:53:58    

C'est bon j'ai résolu... une erreur idiote :S

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed