Hallo,
Ich habe ein Problem beim schreiben und wieder einlesen von einer Struktur.
Die Struktur erzeuge ich folgendermaßen:
typedef double mx_real_t;
typedef mx_real_t *mx_vector_t;
mx_vector_t vec1 = mx_vector_create(3);
mx_vector_t vec2 = mx_vector_create(3);
...
mx_vector_t *container = (mx_vector_t*)calloc(2, sizeof(mx_vector_t*));
container[0] = vec1;
container[1] = vec2;
...
Nun will ich mir container, samt Inhalt auf Platte sichern und mache das so:
file = fopen("daten", "wb");
fwrite(container, sizeof(mx_vector_t), 5, file);
fclose(file);
Nach einem Neustart ,oder auch während das Programm läuft möchte ich die Daten wieder in container laden.
Zwischenzeitlich wird der Speicherplatz von container freigegeben.
Das laden erfolgt so:
file = fopen("daten", "rb");
fread(container, sizeof(mx_vector_t), 5, file);
fclose(file);
Leider steht nach dem laden von 'Daten' nur noch Schrott in container.
Dabei muss ich sagen das mx_vector_create(3) eine externe Funktion ist,
die aber nur eine etwas erweitertes calloc ausführt.
Auch nach mehrfachen rumprobieren habe ich meinen Fehler nicht gefunden, vielleicht könnte mir einer von euch helfen.
MfG Andre
Ich habe ein Problem beim schreiben und wieder einlesen von einer Struktur.
Die Struktur erzeuge ich folgendermaßen:
typedef double mx_real_t;
typedef mx_real_t *mx_vector_t;
mx_vector_t vec1 = mx_vector_create(3);
mx_vector_t vec2 = mx_vector_create(3);
...
mx_vector_t *container = (mx_vector_t*)calloc(2, sizeof(mx_vector_t*));
container[0] = vec1;
container[1] = vec2;
...
Nun will ich mir container, samt Inhalt auf Platte sichern und mache das so:
file = fopen("daten", "wb");
fwrite(container, sizeof(mx_vector_t), 5, file);
fclose(file);
Nach einem Neustart ,oder auch während das Programm läuft möchte ich die Daten wieder in container laden.
Zwischenzeitlich wird der Speicherplatz von container freigegeben.
Das laden erfolgt so:
file = fopen("daten", "rb");
fread(container, sizeof(mx_vector_t), 5, file);
fclose(file);
Leider steht nach dem laden von 'Daten' nur noch Schrott in container.
Dabei muss ich sagen das mx_vector_create(3) eine externe Funktion ist,
die aber nur eine etwas erweitertes calloc ausführt.
Auch nach mehrfachen rumprobieren habe ich meinen Fehler nicht gefunden, vielleicht könnte mir einer von euch helfen.
MfG Andre