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

  FORUM HardWare.fr
  Programmation
  C

  Contante de type "tableau": est-ce que ca existe en C?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Contante de type "tableau": est-ce que ca existe en C?

n°1434177
pierrot_le​fou
Posté le 31-08-2006 à 11:25:26  profilanswer
 

Bonjour à tous, voici mon petit soucis :
 
 
 
A l'heure actuelle, j'initialise un tableau qui contient plusieurs valeurs numériques de la manière suivante:  
 

Code :
  1. unsigned long FirstLeaf[AFDXSCALAROIDLENGTH]={1, 3, 6, 1, 4, 1, 11111, 1, 1, 1, 1, 0};


 
Mais je trouve que ca fait crado et que ca n'est pas maintenable facilement (ces chiffres représentent un identifiant qui est répété plusieurs fois dans le code et qui peut changer).  
Donc, je voudrais créer une constante qui contiendrait la valeur d'init de ce tableau et juste remplir ce tableau avec cette constante.
 
Faire un truc du style  
 
Dans mon fichier ".h"

Code :
  1. #define MAVALEUR_INIT {1, 3, 6, 1, 4, 1, 11111, 1, 1, 1, 1, 0}


et dans le fichier .c:

Code :
  1. unsigned long FirstLeaf[AFDXSCALAROIDLENGTH];
  2. memcpy(&FirstLeaf[0], MAVALEUR_INIT, labonnetaille*sizeof(unsigned long));


Donc ma question est la suivante :  
Est-ce qu'il y a un moyen de définir une constante qui contient un tableau? (un truc ressemblant à  

Code :
  1. #define MAVALEUR_INIT {1, 3, 6, 1, 4, 1, 11111, 1, 1, 1, 1, 0}

)
 
 
Merci

mood
Publicité
Posté le 31-08-2006 à 11:25:26  profilanswer
 

n°1434184
_darkalt3_
Proctopathe
Posté le 31-08-2006 à 11:39:27  profilanswer
 

as-tu essayé ?

n°1434244
pierrot_le​fou
Posté le 31-08-2006 à 13:41:19  profilanswer
 

Oui, oui, j'ai essayé :
le compilo me dit:  
 
expected primary-expression before '{' token

n°1434261
Emmanuel D​elahaye
C is a sharp tool
Posté le 31-08-2006 à 14:19:08  profilanswer
 

pierrot_lefou a écrit :

Donc, je voudrais créer une constante qui contiendrait la valeur d'init de ce tableau et juste remplir ce tableau avec cette constante.


Tu y étais presque :  

Code :
  1. #define MAVALEUR_INIT {1, 3, 6, 1, 4, 1, 11111, 1, 1, 1, 1, 0}


et dans le fichier .c:

Code :
  1. unsigned long FirstLeaf[AFDXSCALAROIDLENGTH] = MAVALEUR_INIT;


Si tu veux faire un init dynamique :  

Code :
  1. unsigned long FirstLeaf[AFDXSCALAROIDLENGTH];
  2. <...>
  3. {
  4.    static const unsigned long z[AFDXSCALAROIDLENGTH] = MAVALEUR_INIT;
  5.    memcpy (FirstLeaf, z);
  6. }


Message édité par Emmanuel Delahaye le 31-08-2006 à 14:22:43

---------------
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°1434333
pierrot_le​fou
Posté le 31-08-2006 à 15:23:46  profilanswer
 

Effectivement, j'ai testé et ca fonctionne correctement (compilation + fonctionnel).
 
Merci beaucoup!


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

  Contante de type "tableau": est-ce que ca existe en C?

 

Sujets relatifs
envoi mail type HTML via Outlook[GAWK] insérer 2 colonnes dans un tableau à un endroit précis
Tableau non contraint en C ???[javascript/html/php]Problème Tableau html / Back IE
Tableau multidimensionnel [Résolu]free() sur tableau dynamiques à 4 dimensions
Tableau pour Windows media player ?[RESOLU] Tableau php, multi colonne?
[RESOLU] recherche sql, tableau php 
Plus de sujets relatifs à : Contante de type "tableau": est-ce que ca existe en C?


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