/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
initialisering af struct med int array ind~
Fra : Troels Thomsen


Dato : 19-02-04 11:00

Hej, Hvordan initialiserer jeg flg array:

typedef struct {
char* str;
int Ids[4];
}myItem;

myItem theConfig[] = {
{"asdf" , {2,6,4,6} } , // wrong !!
{"qwerty" , ??????} , // ??????
};


Har experimenteret med flg, men så kommer mine data ikke til at stå sammen


typedef struct {
char* str;
int* Ids;
}myItem;

int lst1[] = {4,3,6,5};
int lst2[] = {8,5,3,2};

myItem theConfig[] = {
{"asdf" , lst1} ,
{"qwerty" , lst2} ,
};

mvh Troels




 
 
Ivan Johansen (19-02-2004)
Kommentar
Fra : Ivan Johansen


Dato : 19-02-04 19:16

Troels Thomsen wrote:
> typedef struct {
> char* str;
> int Ids[4];
> }myItem;
>
> myItem theConfig[] = {
> {"asdf" , {2,6,4,6} } , // wrong !!
> {"qwerty" , ??????} , // ??????
> };

Det er korrekt, hvis du erstatter spørgsmålstegnene med data og fjerner
det sidste komma. Følgende compiler med Borland C++ Builder 6:
myItem theConfig[] =
{
{"asdf" , {2,6,4,6}},
{"qwerty" ,{1,2,3,4}}
};

Ivan Johansen

Byrial Jensen (19-02-2004)
Kommentar
Fra : Byrial Jensen


Dato : 19-02-04 20:33

Ivan Johansen wrote:
> Troels Thomsen wrote:
> > typedef struct {
> > char* str;
> > int Ids[4];
> > }myItem;
> >
> > myItem theConfig[] = {
> > {"asdf" , {2,6,4,6} } , // wrong !!
> > {"qwerty" , ??????} , // ??????
> > };
>
> Det er korrekt, hvis du erstatter spørgsmålstegnene med data og fjerner
> det sidste komma.

Det er nok at erstatte spørgsmålstegnene med data for at gøre det
korrekt - i hvert fald hvis der er tale om C-kode. Jeg ved ikke om en
C++-initialisering af et array må slutte med et komma, men det er
tilladt i C.


Ivan Johansen (19-02-2004)
Kommentar
Fra : Ivan Johansen


Dato : 19-02-04 22:48

Byrial Jensen wrote:
> Det er nok at erstatte spørgsmålstegnene med data for at gøre det
> korrekt - i hvert fald hvis der er tale om C-kode. Jeg ved ikke om en
> C++-initialisering af et array må slutte med et komma, men det er
> tilladt i C.

Du har sørme ret. Det virker også i C++. Det var jeg ikke klar over.

Ivan Johansen

Troels Thomsen (20-02-2004)
Kommentar
Fra : Troels Thomsen


Dato : 20-02-04 09:59


(ja, initialiseringen virkede sq da fint nok)

> Jeg ved ikke om en
> C++-initialisering af et array må slutte med et komma, men det er
> tilladt i C.
>

Ok. I dokumentationen til IAR's C compiler (til atmel avr) står at et sådant
komma i forbindelse med enums er en extention som de har lavet.
Underforstået at det ifb med enums ikke er del af standarden.

mvh Troels



Ivan Johansen (20-02-2004)
Kommentar
Fra : Ivan Johansen


Dato : 20-02-04 11:02

Troels Thomsen wrote:
> Ok. I dokumentationen til IAR's C compiler (til atmel avr) står at et sådant
> komma i forbindelse med enums er en extention som de har lavet.
> Underforstået at det ifb med enums ikke er del af standarden.

Ja for enum virker det heller ikke i C++, men det gør det for arrays.
Det ser dog ud til at komma i enden af en enum er gyldig i C99 men ikke
i C89 (Ifølge Comeau C).

Ivan Johansen


Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31964
Nyheder : 719565
Indlæg : 6408183
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste