Ich versuche, eine Reihe von Strukturen in C++ zu serialisieren. Dies funktioniert hervorragend für alle Daten außer einem Vektor, der in meiner Struktur enthalten ist. Ich kann die Daten auf die Festplatte schreiben und dann alle Daten in den Speicher zurücklesen. Das einzige Problem ist, wenn ich versuche, auf ein Element des Vektors zuzugreifen, bekomme ich einen Segmentierungsfehler. Mein Code ist unten. Jede Hilfe wird sehr geschätzt.Serialisierung von komplexen Strukturen in C++
Programm auf die Festplatte
int main {
struct Student one;
strcpy(one.FullName, "Ernestine Waller");
strcpy(one.CompleteAddress, "824 Larson Drv, Silver Spring, MD 20910");
one.Gender = 'F';
one.LivesInASingleParentHome = true;
one.grades.push_back(80);
one.grades.push_back(90);
ofstream ofs("fifthgrade.ros", ios::binary);
ofs.write((char *)&one, sizeof(one));
ofs.close();
}
Programm zu schreiben, von der Festplatte
int main {
struct Student *two = (struct Student *) malloc(sizeof(struct Student));
ifstream ifs("fifthgrade.ros", ios::binary);
//cout << "Size of struct: " << size << endl;
ifs.read((char *)two, sizeof(struct Student));
cout << "Student Name: " << two->FullName << endl;
cout << "First Grade: " << two->grades[0] << endl;
cout << "Second Grade: " << two->grades[1] << endl;
ifs.close();
return 0;
}
http://www.parashift.com/c++faq-lite/serialization.html – DumbCoder
Boost Serialisierung: http://www.boost.org/doc/libs/1_44_0/libs/serialization/doc/index. html – karlphillip
Bitte geben Sie die Deklaration für 'Student' an –