私はベクトルのデータをバイナリシリアル化しようとしています。以下のこのサンプルでは、文字列にシリアル化してから、ベクトルに逆シリアル化しますが、始めたのと同じデータを取得しません。これはなぜですか?ベクトルのシリアル化
vector<size_t> v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
string s((char*)(&v[0]), 3 * sizeof(size_t));
vector<size_t> w(3);
strncpy((char*)(&w[0]), s.c_str(), 3 * sizeof(size_t));
for (size_t i = 0; i < w.size(); ++i) {
cout << w[i] << endl;
}
私は出力
1
2
3
を取得する代わりに、出力に(gcc-4.5.1上)
1
0
0
を得ることを期待
@マーク:そうは思わない。 –