Forum: PC-Programmierung Mittels Zeiger (Pointer) Struct Daten auslesen


von Michael (Gast)


Lesenswert?

Hallo,

ich habe Problem beim Zugriff auf ein Struct.
Habe ein File1.C wo die Struct als static definiert ist und auch befüllt 
wird, jetzt wollte ich aus File2.C die Daten der Struct mittels Zeiger 
auslesen. Dafür wollte ich einen Signleton verwenden, welcher im File2.H 
Header definiert ist.
1
//File1.H
2
typedef struct{
3
uint8 data;
4
}meinStruct;
5
6
//File1.C
7
static meinStruct meinStructObjekt = {0};
8
9
meinStruct * getMyStructData(void)
10
{
11
return &meinStructObjekt ;
12
}
13
14
func(void)
15
{
16
meinStructObjekt.data = 1; 
17
return;
18
}
19
20
//File2.H
21
meinStruct * getMyStructData(void);
22
23
//File2.C
24
readStruct(void)
25
{
26
uint8 dataFromStruct = 0;
27
28
meinStruct *ptrMeinStruct = getMyStructData();
29
dataFromStruct  = ptrMeinStruct ->data; //hier kriege ich einen Fehler, da ich lesen möchte bevor data beschrieben wurde, ich ginge von aus, ich würde hier auf das beschriebene Struct aus dem File1.C zugreifen... ist dem aber anscheinend nicht so
30
return;
31
32
}

von Achim M. (minifloat)


Lesenswert?

Michael schrieb:
> //File2.H
> meinStruct * getMyStructData(void);

Das muss in den Header von file1.c
Header file1.h muss in file2.c includiert werden.
Sonst ist der Datentyp dort nicht bekannt und es knallt.
mfg mf

von Michael (Gast)


Lesenswert?

Hallo,

scheint jetzt zu laufen, auch der Compiler schmeisst keine 
Warnungen/Fehler mehr, bin nicht sicher woran es lag, vllt. nicht 
komplett gecleaned.

VG

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.