binäre datei + dynamisches array
-
Hi!
Wenn ich dieses struct-array binär in eine datei schreibe, es ist dynamisch, ich weiss nie wieviele elemente es hatstruct Album { Track *tracks; int iNumTracks; }
wie kann ich da mit fread dann aus ner binären datei lesen, weil ich muss es ja irgendwie initialisieren ...
greets,
cNc
-
/* speichern: */ void save_track(Track *t, FILE *f); void save_album(struct Album *a, FILE *f) { int i; fwrite(&a->iNumTracks, sizeof(int), 1, f); for (i = 0; i < a->iNumTracks; ++i) save_track(&a->tracks[i], f); }
/* laden: */ void load_track(Track *t, FILE *f); void load_album(struct Album *a, FILE *f) { int i, n; fread(&n, sizeof(int), 1, f); a->iNumTracks = n; a->tracks = malloc(n * sizeof(Track)); for (i = 0; i < n; ++i) load_track(&a->tracks[i], f); }
Fehlerbehandlung sei dem Leser zur Übung überlassen.
-
danke schön
hab wohl irgendwie nen denkfehler gemacht ... wollte iegtnlich
fwrite(&album, 1, file);
und dann
fread(&album, 1, file);deswegen wusste ich nicht wie ich dann den speicher allozieeren soll
greets,
cNc