Char* und Write/Read?
-
Ich habe das Problem, dass Strukturen mit char* nicht gelesen werden können (vielleicht auch falsch geschrieben?).
struct file_dbm { char title [3]; int version; char *text; }; ifstream input_file(filename, ios::binary); file_dbm input_data; input_file.read(reinterpret_cast<char*>(&input_data),sizeof(file_dbm)); input_file.close(); cout << input_data.text;Beim Ausgeben gibt es dann den Fehler/Absturz.
-
Du musst eine genaue Elementezahl angeben die eingelesen werden soll.
-
Elementzahl? Bei char*? Wie meinst du das?
-
char text[n]
-
Gemeint ist, daß du auch beim Text ein char-Array verwenden sollst (wie beim Titel, d.h. z.B. char text[100]). Bisher speicherst du nur die Adresse ab (char *), und diese wird beim Neustart des Programms (oder auf einem anderen Rechner) garantiert nicht (mehr) gültig sein.