Gast
#76847
Hallo!
Ich habe ein kleines Problem mit dem GCC (WinAVR). Vermutlich liegt es
eher an meinen C-Kenntnissen als an GCC :).
Gegeben sind folgende structe:
---------------------
struct artsProcess {
uint8_t pid;
uint8_t state;
uint8_t numStates;
struct artsTransition * transitions[]; /*Array of artsTrans, für jeden
State eine Kette von Trans*/
};
struct artsTransition {
uint8_t srcPid;
uint8_t sigID;
struct artsTransition * next;
void (*exec)(struct artsSignal* signal);
};
--------------------------
Folgendes geht nicht:
tempProc->transitions=malloc(BLINK_NUMSTATES*sizeof(struct
artsTransition));
(tempProc ist ein artsProcess )
Der GCC sagt: blinkLED.c:23: error: invalid use of flexible array
member
Was bedeutet das? Da "transisitons" ein Zeiger auf ein Array ist,
versucht ich soviel Speicher zu reservieren wie ich artsTransition
Objekte brauche (BLINK_NUMSTATES).
Wie mache ich das, bzw. warum geht es soch nicht?
MfG
Sebastian