Strukturen

CosmoKey

Mitglied
Hallo!

ich hab mal eine frage zu c. kann man strukturen in einem void* speichern?

das hier geht ja:
Code:
void* test = (void*)5;
und mit:
Code:
printf("\nHallo %i", test);
komme ich wieder an den inhalt. geht das auch mit strukturen?


danke schonmal
 
void* ist ein Zeiger auf Speicherbereich. Da sich im Speicher alles speichern lässt, geht das natürlich. Um auf die einzelnen Elemente zugreifen zu müssen, musst du den allgemeinen Zeiger in einen spezifischen für deine Strukt via cast umwandeln.
 
Es ist nicht korrekt, zu sagen, eine Struktur würde "in einem void*" gespeichert werden. Die 5 im Beispiel wird nicht "in einem void*" gespeichert, sondern in den Typ void* gecastet. Ein Zeiger ist 32 Bit breit, also kann man mit einem Zeigertyp nur Objekte von maximal 32 Bit Breite speichern. Eine Struktur wird selten in einen Zeiger passen.

Gawayn
 
Zurück