fread mit zeiger auf array von objekten

maniacquaker

Grünschnabel
Hallo,
ich habe einen pointer auf objekte einer klasse mitarbeiter, die dynamisch auf dem heap angelegt werden. bei programmende sollen alle objekte per fwrite in eine datei geschrieben werden. beim systemstart jedoch werden sie nicht geladen!

m ist mein pointer und cur_mitarbeiter das größte gültige feld.
dieser code funktioniert so nicht : fehler: mitarbeiter kann nicht nach void
umgewandelt werden (1. argument fread)

ich habe deshalb noch folgende dinge probiert, die aber uach nicht geklappt haben: 1. &(m[cur_mitarbeiter])
2. m+(cur_mitarbeiter)*sizeof(mitarbeiter)

am schönsten wäre es, wenn mir jemand sagen kann wie ich da die richtige
typumwandlung mache...

hier mein member:

void mhandler::load_from_file(){

FILE * fp = fopen(saved_mitarbeiter,"r"); // #define saved_mitarbeiter....

while((!feof(fp)) && !(ferror(fp))){ // ist komischweise auch true,
// wenn datei leer ist
if(cur_mitarbeiter==max_mitarbeiter) // wenn speicher voll
enlarge_array(2); // mehr felder anlegen (2)
fread((m[cur_mitarbeiter]),sizeof(mitarbeiter),sizeof(1),fp);
cur_mitarbeiter++;
}

fclose(fp);
}

danke im voraus!
 
Hi.
am schönsten wäre es, wenn mir jemand sagen kann wie ich da die richtige
typumwandlung mache...
Noch viel schöner wäre es, wenn du erstmal deinen Beitrag auf die folgenden Punkte hin
überarbeiten würdest:

  1. Groß-/Kleinschreibung (siehe Netiquette Punkt 15)
  2. Rechtschreibung allgemein
  3. Code in Code Tags einschließen. ([c]...[/c] für C Code bzw. [code=cpp]...[/code] für C++ Code
So einen dahingeklatschten Beitrag liest sich nämlich so schnell keiner durch.


Gruß
 
Zurück