Structure en c sur un tableau de chaine de caractere

Structure en c sur un tableau de chaine de caractere - C - Programmation

Marsh Posté le 29-10-2010 à 16:24:00    

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 :)

Reply

Marsh Posté le 29-10-2010 à 16:24:00   

Reply

Marsh Posté le 29-10-2010 à 16:58:04    

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;

Reply

Marsh Posté le 29-10-2010 à 18:05:50    

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

Reply

Marsh Posté le 29-10-2010 à 22:17:08    

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 !).

Reply

Sujets relatifs:

Leave a Replay

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