C
fread() und fwrite() sind schon richtig - allerdings mußt du nicht die struct mit dem Pointer schreiben, sondern die Daten, die hinter dem Pointer liegen;
struct test
{
size_t datasize;//es ist immer gut zu wissen, wie groß die Nutzdaten sind
void* data;
}
void write_test(FILE* datei,test* obj)
{
fwrite(&(obj->datasize),sizeof(size_t),1,datei); //Datengröße - 1 size_t
fwrite(obj->data,1,obj->datasize,datei); //Nutzdaten - datasize Byte
}
void read_test(FILE* datei,test* obj)
{
fread(&(obj->datasize),sizeof(size_t),1,datei); //Datengröße
obj->data = malloc(obj->datasize);
fread(obj->data,1,obj->datasize,datei); //Nutzdaten
}