I’ve looked at binary reading and writing objects in c++ but are having some problems. It “works” but in addition I get a huge output of errors/”info”.
What I’ve done is
Person p2;
std::fstream file;
file.open( filename.c_str(), std::ios::in | std::ios::out | std::ios::binary );
file.seekg(0, std::ios::beg );
file.read ( (char*)&p2, sizeof(p2));
file.close();
std::cout << "Name: " << p2.name;
Person is a simple struct containing string name and int age. When I run the program it outputs “Name: Bob” since I have already made a program to write to a file (so the object is already in filename).
IN ADDITION to outputting the name it also outputs:
* glibc detected * program: double free og corruption (fastttop): ***
Backtrace:
…
Memory map:
…
Abort
Is the name string in the Person struct a character array or a STL string? You can’t fill in an STL String by binary reading data over top of it, since the data format is not serializable (contains pointers)