zapis tablicy do pliku binarnego

0

Witam. Jak najprościej zapisać tablicę do pliku binarnego?

class object {
string id;
uint32_t length;
char *data;
} 
vector<object> array;
...cpp
fstream f("plik.bin", os:binary|ios:out) ;
f. write((char*)&array, array.size()*sizeof(object));
f.close();
4

Jeśli data w tym obiekcie jest wskaźnikiem, to musisz jakoś te dane zserializować, dumpowanie pamięci nic tu nie da.

2

Zależy co chcesz osiągnąć. Może zainteresuj się protobuf, thrift albo boost::serialization.

Jeżeli chcesz to robić z ręki, to musisz zserializaować. Jak ma być przenośne między maszynami bigendian i littlendian to będziesz musiał zmienne numeryczne sprowadzić do wspólnej reprezentacji. Kopiowanie wskaźników też nie ma sensu, bo będzie to nic nie znacząca liczba w pliku, która po deserializacji i tak musi być nadpisana adresem nowej pamięci.
Jeżeli w pliku będzie więcej struktur to jeszcze musisz się zastanowić jak to zakodować by wiedzieć z czym masz do czynienia, kiedy się kończy, kiedy zaczyna nowa struktura.

1 użytkowników online, w tym zalogowanych: 0, gości: 1