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

  FORUM HardWare.fr
  Programmation
  C

  Structure en c sur un tableau de chaine de caractere

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Structure en c sur un tableau de chaine de caractere

n°2033169
Hooli
Posté le 29-10-2010 à 16:24:00  profilanswer
 

Bonjour, voilà je débute en c et j'aborde les structures.
je souhaite faire un tableau de chaine de caractère des mois de l'année dans une structure de ce type :
 

Code :
  1. struct Mois
  2. {
  3. char * symbole[]={ "Janvier", "fevrier", "mars", "avril", "mai", "juin", "juillet", "etc..." };
  4. int valeur; //contenant le nombre de mois (je sais c'est inutile mais je vais mettre d'autre valeurs)
  5. };


 
Le soucis c'est que j'ai une erreur au compilateur sur ce tableau de chaine de caractère.

Code :
  1. Mois.c:7: error: expected ‘:’, ‘,’, ‘;’, ‘}’ or ‘__attribute__’ before ‘=’ token


 
d'autre part, je ne sais pas utiliser ces variables dans une fonction cela me met que je ne l'ai pas déclaré, mais y en as t'il vraiment besoin ? puisque c'est une structure...
 
Voilà désolé si c'est vraiment stupide mais je bloque dessus depuis assez longtemps et mes connaissances en C sont pas au top.
 
Merci à mes futurs sauveurs :)

mood
Publicité
Posté le 29-10-2010 à 16:24:00  profilanswer
 

n°2033177
olivthill
Posté le 29-10-2010 à 16:58:04  profilanswer
 

Il ne faut pas mélanger la définition d'une structure et son initialisation.
 
Ca passe si on fait :

Code :
  1. char *noms_des_mois[]={ "Janvier", "fevrier", "mars", "avril", "mai", "juin", "juillet", "etc..." };
  2. struct mois_struct
  3. {
  4.   char **symbole;
  5.   int valeur; //contenant le nombre de mois (je sais c'est inutile mais je vais mettre d'autre valeurs)
  6. } tab_mois;
  7. tab_mois.symbole = noms_des_mois;

n°2033192
Hooli
Posté le 29-10-2010 à 18:05:50  profilanswer
 

Salut, merci pour ton intervention. Peux tu m'expliquer pourquoi tu as mis deux astérisques ?
 
char ** symbole;  
 
??

n°2033224
olivthill
Posté le 29-10-2010 à 22:17:08  profilanswer
 

Deux astérisques signifient "pointeur sur pointeur". Ca revient au même que *toto[]. Par convention personnelle, j'utilise les crochets, quand j'y place un nombre à l'intérieur pour indiquer la taille total ou un indice. Sinon, quand il y a des crochets vides, j'utilise une étoile de préférence. C'est une convention que l'on retrouve assez souvent, et même dans le livre des auteurs du C, qui est celui qui m'a servi d'apprentissage (Le K & R à la couverture noire chez Masson, c'était le bon temps !).


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

  Structure en c sur un tableau de chaine de caractere

 

Sujets relatifs
Tableau avec separateurextraire un chiffre d une chaine de caractere [résolu]
Renvoie de tableau en appelant une classeProblème pour récupérer un tableau
Comment remplacer un caractère dans une très longue liste[C] tableau dynamique 2 dimension
Concatenation de chaine textetableau 2D dynamique
Comparaison/Test de "structure" XML 
Plus de sujets relatifs à : Structure en c sur un tableau de chaine de caractere


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