как распаковать данные в динамически выделенную область памяти

В основном я пытаюсь распаковать некоторый источник в динамически выделяемую память, указанную указателем данных. У меня есть следующий код, я вижу 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, и я должен использовать оператор new, поскольку размер данных изменяется в зависимости от другого индикатора.

Изменить: я нашел ответ здесь: Установка внутреннего буфера, используемого стандартным потоком (pubsetbuf)

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector