Jaecko
10.11.2009, 22:23
Moin.
Im folgenden Code soll ein Array aus Structs vom Typ stc_B erstellt werden. In jedem Array-Element soll dann neben einer Nummer (b1) auch ein Zeiger auf eine Struct vom Typ stc_cfg sein.
typedef struct
{
ui16_t a1;
ui16_t a2;
ui8_t a3;
} stc_cfg;
typedef struct
{
ui16_t b1;
stc_cfg *data_A;
} stc_B;
const stc_cfg Config1 = {0, 1, 2};
const stc_cfg Config1 = {4, 6, 2};
const stc_B DatasetsB[]=
{
{ 0x0001, Config1 },
{ 0x0002, Config2 },
{ 0x0003, Config1 },
{ 0x0004, Config1 },
{ 0x0005, Config2 }
};
Problem ist jetzt, dass jede Zeile { .. } in stc_B DatasetsB[] bemängelt wird mit:
error: initializer element is not constant
error: (near initialization for 'DatasetsB[0].data_A')
error: initializer element is not constant
error: (near initialization for 'DatasetsB[1].data_A')
error: initializer element is not constant
error: (near initialization for 'DatasetsB[2].data_A')
...
Haut diese Idee nicht hin, in einer Struct nen Zeiger auf ne Struct zu übergeben oder hab ich wieder etwas vergessen?
mfG
Im folgenden Code soll ein Array aus Structs vom Typ stc_B erstellt werden. In jedem Array-Element soll dann neben einer Nummer (b1) auch ein Zeiger auf eine Struct vom Typ stc_cfg sein.
typedef struct
{
ui16_t a1;
ui16_t a2;
ui8_t a3;
} stc_cfg;
typedef struct
{
ui16_t b1;
stc_cfg *data_A;
} stc_B;
const stc_cfg Config1 = {0, 1, 2};
const stc_cfg Config1 = {4, 6, 2};
const stc_B DatasetsB[]=
{
{ 0x0001, Config1 },
{ 0x0002, Config2 },
{ 0x0003, Config1 },
{ 0x0004, Config1 },
{ 0x0005, Config2 }
};
Problem ist jetzt, dass jede Zeile { .. } in stc_B DatasetsB[] bemängelt wird mit:
error: initializer element is not constant
error: (near initialization for 'DatasetsB[0].data_A')
error: initializer element is not constant
error: (near initialization for 'DatasetsB[1].data_A')
error: initializer element is not constant
error: (near initialization for 'DatasetsB[2].data_A')
...
Haut diese Idee nicht hin, in einer Struct nen Zeiger auf ne Struct zu übergeben oder hab ich wieder etwas vergessen?
mfG