期待どおりに動作しない、迅速で汚いベクトルのシリアライゼーションを実行しようとしています。問題は、ファイルからベクターを読み取ろうとするときのセグメンテーション違反です。ファイル オフセットとベクトル サイズをヘッダーに格納します。コードは次のとおりです。
// writing
std::vector<size_t> index;
header.offset = ofs.tellp();
header.size = sizeof(index);
ofs.write((char *) &index[0], sizeof(index)); // pretty bad right, but seems to work
// reading
std::vector<size_t> index;
index.resize(header.numElements)
ifs.seekg(header.offset);
// segfault incoming
ifs.read((char *) &index[0], header.size);
正直なところ、これが機能した場合は驚くでしょうが、私が望むものを達成するための適切な方法が何であるかはわかりません. 私はブーストから離れたいと思っていますが、私はすでに Qt を使用しているので、QVector または QByteArray が何らかの形で役立つ場合は、これらを使用できます。