aha..meinst du, dass es eigentlich richtig mit em einlesen funktioniert, aber da die liste ja noch leer ist, kann er die daten nirgends reinschreiben?
nun..die liste wird eigenlitch bei jedem start wieder mit 5 "default personen" gefüllt. Darum sollte es ja nicht an dem liegen, oder?
Nein, deine Vorgehensweise ist nicht korrekt. Besser wäre folgendes (Pseudocode):
|
C-/C++-Quelltext
|
1
2
3
4
5
6
|
while ( !stream.eof() )
{
CMember* curr = new CMember;
read( stream, curr );
list->push_back( curr );
}
|
also ich benutze sizeof nicht auf einen zeiger.. CMember ist eine klasse...
also sollte die grösse (bis auf den string ) ja sitmmen. Ich habe es soweit ich mich erinner kann auch mal mit einem char- array versucht und nicht direkt mit dem zeiger, damit der compiler weiss, wie gross der string sein kann.. aber dann hat er mir wieder einen fehler ausgegeben...
Du verwendest sizeof nicht auf einen Zeiger, aber in CMember sind evtl Zeiger. Drum wird die Größe von deinem Objekt zwar korrekt angezeigt, aber das ist nicht der Wert den du benötigt um dein Objekt zu speichern, denn du willst ja den vollständigen String mit speichern.
Und sizeof gibt keinen Fehler raus wenn es auf einen Zeiger angewendet wird!
das mit dem iterator habe ich schon gedacht, dass es irgendwie falsch ist, aber
|
C-/C++-Quelltext
|
1
|
&(*it)
|
hat auch nicht funktioniert...
Klar geht das nicht, der Rest ist ja auch noch falsch!
inwiefern hat dann die serialisierung damit zu tun?
Das hat insofern was damit zu tun als das du versuchst dein Objekt in eine Datei zu speichern und wieder auszulesen.