Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1698 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Probleme tableau 2 dimensions + structure en C

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probleme tableau 2 dimensions + structure en C

n°1313511
cheetwoox
Posté le 25-02-2006 à 15:12:53  profilanswer
 

Salut,
 
Je fait un petit programme qui utlise un tableau deux dimensions dont les cases sont des enregistrements (structures).
J'ai un probleme lorsque j'essaye de mettre une valeur dans le tableau lorsque je ne suis pas dans le programme principal (sous programme).
 
Ex :

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4. struct contenuGrille
  5.     {
  6.            int valeur;
  7.            int rempli;
  8.            int certain;
  9.     };
  10. void recupereValeursConnues(struct contenuGrille *grilleAPasser);
  11. int main()
  12. {
  13.     struct contenuGrille grille [15][15];
  14.    
  15.     recupereValeursConnues(*grille);   
  16.     return 0;
  17. }
  18. void recupereValeursConnues(struct contenuGrille *grilleAPasser)
  19. {
  20.     scanf("%d",&temp1);
  21.     scanf("%d",&temp2);
  22.     scanf("%d",&temp3);
  23.     grilleAPasser[temp1][temp2].valeur = temp3;       
  24.  
  25. }


 
Il bloque sur la ligne "grilleAPasser[temp1][temp2].valeur = temp3" en disant "suscripted value is neither array nor pointer". j'ai essayé de mettre une etoile devant ou un "&" mais ca change rien il en veux aps quant meme :( Comment je fait pour modifier cette grille en etant dans un sous programme ? j'ai pourtant bien passé l'adresse de la grille avec l'etoile ?
 
Merci d'avance de votre aide, ca doit etre un truc tout con mais je vois pas :(

Message cité 1 fois
Message édité par cheetwoox le 25-02-2006 à 15:13:25
mood
Publicité
Posté le 25-02-2006 à 15:12:53  profilanswer
 

n°1313513
Emmanuel D​elahaye
C is a sharp tool
Posté le 25-02-2006 à 15:22:27  profilanswer
 

cheetwoox a écrit :


Code :
  1. void recupereValeursConnues(struct contenuGrille *grilleAPasser)
  2. <...>
  3. {
  4.     struct contenuGrille grille [15][15];
  5.    
  6.     recupereValeursConnues(*grille);   
  7. }




A vue de nez, ce genre de code devrait générer 300.000 warnings et erreurs...
 
http://mapage.noos.fr/emdel/notes.htm#param_tab


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1313515
cheetwoox
Posté le 25-02-2006 à 15:33:21  profilanswer
 

j'ai regardé mais j'y comprend pas grand chose... :(
je pensait qu'en passant l'adresse du tableau on pouvait ensuite le traiter il me semblait l'avoir fait avec un tableau a une dimension, mais apparement le fait qu'iol y en ait deux (des dimensions) et des structures ca ne lui plait pas :(

n°1313517
skelter
Posté le 25-02-2006 à 15:45:50  profilanswer
 

Citation :

je pensait qu'en passant l'adresse du tableau on pouvait ensuite le traiter


 
oui mais tu ne passes pas son adresse, tu confonds l'opérateur de déférencement * avec l'opérateur 'adresse de' & et le nom d'un tableau désigne déja son adresse (l'adresse de son premier élément)
 

Citation :

mais apparement le fait qu'iol y en ait deux (des dimensions) et des structures ca ne lui plait pas


 
non c'est pareil

Code :
  1. int tab[15];
  2. int * p = tab;
  3. int tab2[15][20];
  4. int (*p2)[20] = tab2;


 
pour le passage à une fonction, elle peut avoir comme prototype

Code :
  1. void f(int (*tab2)[20]);


ou

Code :
  1. void f(int tab2[15][20]);


ou

Code :
  1. void f(int tab2[][20]);

n°1313518
cheetwoox
Posté le 25-02-2006 à 15:45:52  profilanswer
 

Code :
  1. void recupereValeursConnues(struct contenuGrille *grilleAPasser);
  2. int main()
  3. {
  4.     struct contenuGrille grille [15][15];
  5.    
  6.     recupereValeursConnues(&grille);   
  7.     return 0;
  8. }


 
Meme comme ça cela ne fonctionne pas :( Il n'y a que si je passe mon tableau a 1 dimension que cela marche :(

n°1313519
cheetwoox
Posté le 25-02-2006 à 15:48:30  profilanswer
 

je vais reessayer en mettant tout en int pour voir si j'arrive a y faire marcher, on verra les struct apres ^^

n°1313520
skelter
Posté le 25-02-2006 à 15:48:32  profilanswer
 
n°1313522
cheetwoox
Posté le 25-02-2006 à 15:53:42  profilanswer
 

c bon je crois que ca marche, fallais juste rajouter les dimensions dans le prototype comme tu l'as marque plus haut ^^ Merci beaucoup !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Probleme tableau 2 dimensions + structure en C

 

Sujets relatifs
Problème de "selectedIndex"Probleme tres bizarre!!!
Probleme de message d'erreurfaire briller un tableau au passage de la souris
probleme config source de données odbc pour oracle XE[debutant C++] [Urgent] Tableau 2D nombre de colonne inconnu
Problème affichage infoBulle IE <> FirefoxPHP MAJ table, formulaire ds un tableau
probleme de headerprobleme avec mysql
Plus de sujets relatifs à : Probleme tableau 2 dimensions + structure en C


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR