IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Initialisation statique tableau


Sujet :

C

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2011
    Messages : 75
    Points : 76
    Points
    76
    Par défaut Initialisation statique tableau
    Bonjour tout le monde,

    Je poste dans la partie débuter car il s'agit d'une règle basique qui me manque. Voilà je m'explique. Je code un soft pour lequel l'allocation dynamique est proscrite (donc pas de malloc and co). Je souhaite déclarer un tableau d'une dimension en omettant sa dimension lors de la déclaration.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    //mastruct montab[dimension]; /* Déclaration habituelle */
     
    mastruct montab[] = {blabla, blabla, blabla}; /* Declaration souhaitée */
     
    struct mastruct{
           char c[10];
           uint8 toto;
           uint16 titi;
           uint32 tata;
    };
    Est-ce que la déclaration souhaitée est possible avec un "blabla" correct ? Car je me demande comment assigner des valeurs pour une structure dans l'initialisation d'un tableau de la sorte. Le but étant que le compilo trouve seul via cette déclaration la dimension du dit tableau. Pour les tableau de int classique pas de problème 0 fait l'affaire, mais dans le cas d'une structure de la sorte, quel serait le formalisme (si existant) ? Une idée ?

    Merci d'avance pour toutes infos.

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 368
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 368
    Points : 23 622
    Points
    23 622
    Par défaut
    Bonjour,

    Il est tout-à-fait possible de déclarer un tableau de structures de la sorte. Et comme l'instance d'une structure peut être initialisée de la même façon, en utilisant un bloc entre accolades, alors il suffit de mettre plusieurs blocs successifs identiques regroupés dans un seul grand « super bloc » :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    typedef struct { int x; int y; int z; } mastruct;
     
    mastruct montab[] = { {1,2,3}, {4,5,6}, {7,8,9} };
    Bon courage.

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2011
    Messages : 75
    Points : 76
    Points
    76
    Par défaut
    Ok parfait ça ! Je voulais être sûr avant de le coder car le compilo aurait pu ne pas crier mais apres tres bien avoir des pbs memoires avec le mauvais formalisme. Donc du coup, merci pour ta réponse

  4. #4
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 368
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 368
    Points : 23 622
    Points
    23 622
    Par défaut
    Citation Envoyé par Koko33 Voir le message
    Ok parfait ça ! Je voulais être sûr avant de le coder car le compilo aurait pu ne pas crier mais apres tres bien avoir des pbs memoires avec le mauvais formalisme. Donc du coup, merci pour ta réponse
    Ça peut être vrai, effectivement, mais cela arrive surtout quand on jongle avec les tableaux à plusieurs dimensions et que l'on veut s'amuser à ce genre de chose en même temps. Mais bon : si c'est cela qu'on veut faire, il vaut mieux s'entraîner un peu avant…

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 35
    Dernier message: 14/02/2006, 18h57
  2. Réponses: 7
    Dernier message: 31/01/2006, 22h34
  3. initialiser un tableau 2D dans le main
    Par miminou dans le forum C++
    Réponses: 5
    Dernier message: 20/12/2005, 10h35
  4. [LG] Jeu mémory : initialisation de tableau
    Par DarkLords dans le forum Langage
    Réponses: 1
    Dernier message: 19/10/2005, 15h13
  5. Problème d'initialisation variable tableau
    Par HeZiX dans le forum Langage
    Réponses: 3
    Dernier message: 08/06/2005, 16h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo