Vielen Dank, dass Du meinen Beitrag liest
Ich versuche folgendes zu verwirklichen: eine einfach verkettete Liste mit dem Inhalt: ein Zeiger, der auf eine (beliebige von mir früher definierte Struct zeigt). Jetzt gibt es eine ganze Reihe von Strukturen (effectpara1FX .. effectparaNFX) mit unterschiedlicher Struktur. Wenn ich jetzt die Liste erstelle, die ja nur aus der Zeiger-Struct besteht (s.u.) , möchte ich dem Zeiger in der UNIT einen Zeiger auf eine (beliebeige) meiner verschiedenen Stucts zuweisen. Der Compiler will aber nicht einen Zeiger in einen anderen verwandeln (Pointer ungleich Pointer). Wie kann ich das lösen?
typedef struct listenUNIT
{
struct listenUNIT *pnext;
struct listenUNIT *effectpara;
} UNIT;
typedef struct effectpara1FX
{
float fpara1;
float fpara2;
int ipara1;
int ipara2;
} FX;
typedef struct effectpara2FX
{
float fpara1;
int ipara1;
} FX;
UNIT *pstart;
UNIT *pstore;
UNIT sonic;
FX *pfxstore;
pfxstore = (FX *)malloc(200);
pstart = &sonic;
sonic.effectpara = pfxstore;
// hier fehler
free(pfxstore);
Ich will also eine beliebig lange Liste erzeugen, die Pointer auf beliebige Structs aus meinen vordefinierten Structs zeigt.
Chris.
Ich versuche folgendes zu verwirklichen: eine einfach verkettete Liste mit dem Inhalt: ein Zeiger, der auf eine (beliebige von mir früher definierte Struct zeigt). Jetzt gibt es eine ganze Reihe von Strukturen (effectpara1FX .. effectparaNFX) mit unterschiedlicher Struktur. Wenn ich jetzt die Liste erstelle, die ja nur aus der Zeiger-Struct besteht (s.u.) , möchte ich dem Zeiger in der UNIT einen Zeiger auf eine (beliebeige) meiner verschiedenen Stucts zuweisen. Der Compiler will aber nicht einen Zeiger in einen anderen verwandeln (Pointer ungleich Pointer). Wie kann ich das lösen?
typedef struct listenUNIT
{
struct listenUNIT *pnext;
struct listenUNIT *effectpara;
} UNIT;
typedef struct effectpara1FX
{
float fpara1;
float fpara2;
int ipara1;
int ipara2;
} FX;
typedef struct effectpara2FX
{
float fpara1;
int ipara1;
} FX;
UNIT *pstart;
UNIT *pstore;
UNIT sonic;
FX *pfxstore;
pfxstore = (FX *)malloc(200);
pstart = &sonic;
sonic.effectpara = pfxstore;
// hier fehler
free(pfxstore);
Ich will also eine beliebig lange Liste erzeugen, die Pointer auf beliebige Structs aus meinen vordefinierten Structs zeigt.
Chris.