Zugriff auf Struktur
-
Hallo,
ich möchte auf folgende Struktur in eine Datei zugreifen:
struct header_struct
{
uint64 dataID;
uint32 info;
struct datatype
{
uint16 first:1;
uint16 type:4;
uint16 cript:1;
}datatype;
}typedef header_struct;Gibt es generell Unterschiede zwischen
typedef header_struct *header1 = NULL; und
typedef header_struct header2;Wann sollte Zeiger verwendet werden?
Danke und Grüße
Bahanfar
-
bahanfar schrieb:
Hallo,
ich möchte auf folgende Struktur in eine Datei zugreifen:
struct header_struct { uint64 dataID; uint32 info; struct datatype { uint16 first:1; uint16 type:4; uint16 cript:1; }datatype; }typedef header_struct;
Und wo genau ist da das Problem? Du hast hier "nur" einen Datentyp, mit dem du Variablen erzeugen kannst - für die Speicherung dieser Variablen auf der Platte würde ich dir fwrite()/fread() empfehlen.
(btw, die gesamte Konstruktion ist syntaktisch falsch - richtig wäretypedef struct header_struct{...}header;
)Gibt es generell Unterschiede zwischen
typedef header_struct *header1 = NULL; und
typedef header_struct header2;Ja, gibt es - das erste ist nicht erlaubt
(falls du die selben Konstruktionen ohne typedef meinst: Ja, das erste ergibt einen Zeiger, der (noch) leer ist (Speicher zur Unterbringung deiner Daten mußt du selber besorgen), der zweite eine vollwertige Variable (inklusive ausreichend Speicherplatz).Wann sollte Zeiger verwendet werden?
Wenn es nötig ist
(die Frage scheint in letzter Zeit häufiger zu kommen)