000
20.01.2004, 20:04 Uhr
Vriza
|
Hoi!
Ich hab von meinem Programmierlehrer ein Projekt aufbekommen in dem ich mit Binärdateien arbeiten muss. Allerdings macht mir das lesen von ihnen einige Probleme. Und zwar, will ich Daten von der (gefüllten!) Binärdatei lesen, allerdings bekomme ich immer wieder einen Speicherfehler wie : "Die Anweisung xxx verweist auf Speicher in xxx . Der Vorgang "written" konnte nicht durchgeführt werden". Danach stürzt das Programm ab.
Danke schonmal für jede Hilfe
Zuerst hier die Structs:
C++: |
struct spielsatz{ int nr; char titel[50]; char autor[50]; char inhalt[500]; };
struct struct_info{ int cbp; void *key; };
struct baum {
baum *links; spielsatz spiel; struct_info info; baum *rechts; };
|
Und hier der code wo der Fehler auftritt:
C++: |
FILE *fp; baum *buffer;
if(!(fp=fopen("spiele.bin","rb")))//abfrage ob datei fehlerfrei geöffnet wurde { printf("Fehler beim Oeffnen der Datei!\n"); exit(0); }
int rc; /* HIER PASSIERT DER FEHLER */ rc=fread(&buffer->spiel, sizeof(spielsatz),1,fp); //1. satz wird gelesen
if (wahl==1) //falls indexwechsel auf nummer { game->info.key=game->spiel.nr; //index wird gesetzt while(rc!=EOF)//neuer baum wird aufgebaut solange die datei nicht am ende ist { einfuegen(&buffer, game->info.key, sizeof(spielsatz), cmp); rc=fread(&buffer->spiel, sizeof(spielsatz),1,fp);//nächster Satz wird gelesen
} }
|
Wenn ich noch weitere Probleme mit meinem Programm habe, soll ich dann einen neuen Thread machen oder in diesen vorhandenen reinschreiben?
mfG
Vriza |