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

  FORUM HardWare.fr
  Programmation
  C

  Pointeur sur tableau de structure

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Pointeur sur tableau de structure

n°2218814
Digaboy
Posté le 06-02-2014 à 16:09:04  profilanswer
 

Bonjour  
 
je suis en train de travailler sur une fonction qui a besoin d'un tableau de structure en argument.  
J'essaye de passer à ma fonction un pointeur vers ce tableau de structure mais je n'arrive pas à faire comprendre à mon compilo ce qu'il faut
 

Code :
  1. //Ma structure
  2. typedef struct
  3. {
  4.     int     Identifiant;
  5.     int     Index;
  6.     char    Nom[50];
  7. } s_Infos;
  8. main(void)
  9. (
  10.     s_Infos MyName[10];
  11.    
  12.     //Action sur My Name ...     
  13.    
  14.     CheckInfos(MyName);//le problème est ici ! je ne comprend pas comment passer ce paramètre !
  15. }
  16. void CheckInfos(s_Infos* Data[])
  17. {
  18.     //Code
  19. }


 
Si vous avez des idées, je suis preneur
 
 
quand j'appel ma fonctionne comme ça  

Code :
  1. CheckInfos(MyName);


j'ai le message

argument of type "s_Infos *" is incompatible with parameter of type "s_Infos **"


 
 
quand j'appel ma fonctionne comme ça  

Code :
  1. CheckInfos(&MyName);


j'ai le message

argument of type "s_Infos (*)[10]" is incompatible with parameter of type "s_Infos **"

Message cité 1 fois
Message édité par Digaboy le 06-02-2014 à 16:21:21
mood
Publicité
Posté le 06-02-2014 à 16:09:04  profilanswer
 

n°2218824
theshockwa​ve
I work at a firm named Koslow
Posté le 06-02-2014 à 17:27:39  profilanswer
 

Digaboy a écrit :

Bonjour

 

je suis en train de travailler sur une fonction qui a besoin d'un tableau de structure en argument.
J'essaye de passer à ma fonction un pointeur vers ce tableau de structure mais je n'arrive pas à faire comprendre à mon compilo ce qu'il faut

 
Code :
  1. //Ma structure
  2. typedef struct
  3. {
  4.     int     Identifiant;
  5.     int     Index;
  6.     char    Nom[50];
  7. } s_Infos;
  8. main(void)
  9. (
  10.     s_Infos MyName[10];
  11.    
  12.     //Action sur My Name ...   
  13.    
  14.     CheckInfos(MyName);//le problème est ici ! je ne comprend pas comment passer ce paramètre !
  15. }
  16. void CheckInfos(s_Infos* Data[])
  17. {
  18.     //Code
  19. }
 

Si vous avez des idées, je suis preneur

 


quand j'appel ma fonctionne comme ça

Code :
  1. CheckInfos(MyName);


j'ai le message

argument of type "s_Infos *" is incompatible with parameter of type "s_Infos **"

 


quand j'appel ma fonctionne comme ça

Code :
  1. CheckInfos(&MyName);


j'ai le message

argument of type "s_Infos (*)[10]" is incompatible with parameter of type "s_Infos **"


 


(Edit pour plus de simplicité)

Code :
  1. void CheckInfos(s_Infos **Data)
  2. {
  3.     //Code
  4. }
 

Re-edit : En fait, non, j'ai faux. Tu dois juste passer un pointeur sur le premier élément dans ton cas. Tu n'as pas besoin de plus.

Code :
  1. void CheckInfos(s_Infos *Data)
  2. {
  3.     //Code
  4. }
  5. main(void)
  6. (
  7.     s_Infos MyName[10];
  8.    
  9.     //Action sur My Name ...   
  10.    
  11.     CheckInfos(MyName);
  12. }
 

devrait fonctionner. Attention, cela dit, c'est souvent une meilleure habitude de passer la taille de ton tableau en paramètre supplémentaire.


Message édité par theshockwave le 06-02-2014 à 17:31:38

---------------
last.fm
n°2218829
Digaboy
Posté le 06-02-2014 à 17:46:58  profilanswer
 

merci de ta réponse mais j'avais testé cette solution et je ne l'avais pas retenu car je ne voyais que le premier élément (et non pas un tableau de structure) dans mon espion de variable
 
mais si je fais abstraction de l'espion et que je me sers de ma structure comme d'un tableau ça marche comme je veux.  
 
en fait ce qui me dérange plus dans cette solution c'est qu'on passe un pointeur vers une structure et qu'on ne passe pas l'information qu'il s'agit d'un tableau de structure.  
 
dans tout les cas merci bien
 
EDIT: en fait je me suis compliqué la vie pour rien.  
 
J'ai trouvé  cette conversation qui résume bien le problème et où différentes solutions sont proposés et argumentés
http://fr.openclassrooms.com/forum [...] ture-86064


Message édité par Digaboy le 06-02-2014 à 17:59:00
n°2218834
theshockwa​ve
I work at a firm named Koslow
Posté le 06-02-2014 à 18:24:57  profilanswer
 

l'observeur de variable de ton debugger ne t'affiche que le peu qu'il sait de ta variable. En l'occurrence, sur un tableau, tu en sais plus que lui lorsque tu passes ce tableau en paramètre à une fonction.
 
Quoiqu'il en soit, tant mieux si tu as trouvé ton bonheur là-bas, mais c'est toujours mieux d'avoir la solution aux problèmes ici-même plutôt que dans un lien (qui pourrait devenir obsolète un jour) pour les futurs membres :)


---------------
last.fm

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

  Pointeur sur tableau de structure

 

Sujets relatifs
[VBA] travailler sur un tableau pendant qu'un programme tourneprobleme de taille d'un tableau excel envoyé par mail
[c] Probleme afficher valeur correcte tableaucopier le contenue d'un fichier dans un tableau
Petit un problème avec structureextraire des valeurs pour remplir tableau
Copie de fichiers video selon lignes tableau Excelparcourir tableau via une url
afficher le contenue d'un tableau dans une interface graphiquetableau de pointeur sur structure dans une structure
Plus de sujets relatifs à : Pointeur sur tableau de structure


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