2010-10-22 5 views
4

Je voudrais initialiser certains éléments d'une structure et d'un tableau en C++.Array et struct initialize en C++

En C, vous pouvez faire:

unsigned char array[30] = {[1] = 4, [20] = 4}; 
struct mystruct 
{ int i; 
    int j; 
} 
struct mystruct e = {.j = 2}; 

Mais je ne peux pas le faire en C++. Y a-t-il un moyen de mettre en œuvre ce type d'initialiseur désigné?

+4

C'est C99, pas C en général ... –

+0

@Oli: Bien que était il y a 11 ans. Serait gentil de ne pas avoir à spécifier ...:/ – GManNickG

+1

@GMan: Il y a peut-être 11 ans, mais il y a encore beaucoup de plates-formes qui ne supportent pas vraiment C99 (ressorts embarqués à l'esprit). Si quelqu'un me dit «C», je suppose qu'il signifie le dénominateur commun de tous les dialectes. YMMV ... –

Répondre

1

Dans C++ structure a constructeurs (tout comme class), de sorte que vous pouvez toujours init votre var en eux.

+0

C'est une structure qui vient d'un C lib que je ne peux pas compiler :(Mais je pensais à ça – jlanza

0

Il est toujours bon d'initialiser TOUT l'élément dans le tableau ou la structure pour éviter de nombreuses erreurs.

Ci-dessous peut vous aider.

pour Initialisation struct

struct myStruct 

{ 

    int i; 

    int j; 

    myStruct() 
    { 
     j=10; //default Constructor  
    } 

}; 

Initialisation Array:

unsigned char array[5]; 

array[0]='A'; 

array[2]='C';