私が知っていることから、ベクトルは連続的であることが保証されており、それにメモリのチャンクを書き込んで fwrite を送信できます。私がする必要があるのは、.resize() を呼び出して、必要な最小長になるように強制することだけです。その後、通常の char 配列として使用できますか? このコードは正しいでしょうか
v.resize(numOfElements);
v.clear(); //so i wont get numOfElements + len when i push back
vector<char>v2;
v2.resize(numOfElements*SizeOfType);
while(...)
{
...
v.push_bacK(x);
}
compress(&v2[0], len, &v[0], len);
fwrite(&v2[0], ....)
私はv2を押し戻したりポップしたりしないことに注意してください。一度だけサイズを変更し、char配列として使用しました。これは安全でしょうか?また、安全なvもダンプした場合(プッシュバックしてクリアします。テストのためにダンプする場合があります)