2

基本的に、データポインターが指す動的に割り当てられたメモリにソースを解凍しようとしています。次のコードがあります。動作していることがわかりますcopy()が、データが指すメモリはすべて0sです。誰かが理由を知っていますか?

void *data = new float[1000000]();
std::ostringstream dest;
dest.rdbuf()->pubsetbuf((char *)data,1000000*4);
boost::iostreams::array_source source( some source );
boost::iostreams::filtering_istreambuf in;
boost::iostreams::filtering_ostreambuf out;
in.push( ios::gzip_decompressor() );
in.push( source );
out.push( dest );
boost::iostreams::copy( in, out );

ここで、データは void ポインターでなければならず、別のインジケーターに基づいてデータ サイズが変化するため、新しい演算子を使用する必要があることに注意してください。

編集:私はここで答えを見つけました:標準ストリーム(pubsetbuf)で使用される内部バッファの設定

4

0 に答える 0