これまでのところ、私はこのコードサンプルを持っています:
...
int nbytes =0;
vector<unsigned char> buffer;
buffer.resize(5000);
nbytes = recv(socket, &buffer[0], buffer.size(),0);
//since I want to use buffer.size() to know data length in buffer I do
...
buffer.resize(nbytes);
resize()を2回使用せずに、バッファー内のデータ長を知ることは別の方法ですか?適切なサイズにサイズ変更されていないベクトルにデータを受信することはできないためです。C ++ STLのドキュメントによると、reserve()メソッドは割り当てを行わないと思います。そして別の質問:この種の技術を使用することはメモリリークに対して安全ですか?