Dender
1
Hallo miteinander…
Ich versuche in mein programm fertige funktionen einzubinden und habe probleme mit der parameterübergabe.
In der Headerdatei ist folgende Struktur definiert:
typedef struct
{
unsigned char var1;
unsigned char var2;
} strukturname[];
Die Funktion, welche diese Struktur als Parameter benötigt sieht folgendermaßen aus:
extern int funktion(const strukturname srtukturdefinition);
Wenn ich die Funktion jedoch in mein Prgramm einbinden will, muss ich vorher die Struktur definieren. Dies hab ich so probiert:
strukturname strukturdef;
strukturdef.var1 = 1;
strukturdef.var1 = 2;
Hier bekomme ich folgende Fehlermeldung:
error: array size missing in strukturdef
hab auch schon probiert die struktur als array zu definieren, alá:
strukturname strukturdef[5];
strukturdef.var1 = 1;
strukturdef.var1 = 2;
Hier heisst der Fehler:
error: reguest for member ‚var1‘ in something not a structure or union
kann mir veilleicht jemand helfen?
Thx, Denny
Hallo,
In der Headerdatei ist folgende Struktur definiert:
> typedef struct
> {
> unsigned char var1;
> unsigned char var2;
> } strukturname[];
Ich wuerde von den [] am Ende absehen, weil es bedeutet, dass du immer ein Array erstellen musst, wenn du mit dieser struct arbeitest.
Stattdessen solltest du
extern int funktion(const strukturname srtukturdefinition);
in
extern int funktion(const strukturname \* strukturdefinition);
umwandeln.
Wenn ich die Funktion jedoch in mein Prgramm einbinden will,
muss ich vorher die Struktur definieren. Dies hab ich so
probiert:
strukturname strukturdef;
strukturdef.var1 = 1;
strukturdef.var1 = 2;
Hier bekomme ich folgende Fehlermeldung:
error: array size missing in strukturdef
hab auch schon probiert die struktur als array zu definieren,
alá:
strukturname strukturdef[5];
strukturdef.var1 = 1;
strukturdef.var1 = 2;
Hier heisst der Fehler:
error: reguest for member ‚var1‘ in something not a structure
or union
Ja klar, strukturdef ist ja ein Array, kein struct.
strukturdef[0].var1 = 1;
sollte aber gehen.
Gruesse,
Moritz