可以使用带内存的istream
Possible to use an istream with memcpy
我正在开发一个c++应用程序,它使用了一个用C编写的库(StormLib)。该库具有将文件读取到void* buffer
(我猜是char[]
)的函数。我想把它送到另一个库去处理。希望它可以用boost::iostreams::stream_buffer
或boost::asio::streambuf
这样的东西来存储文件,以便通过任何方法读取。
我试过简单地传递一个istream(有一个boost::asio::streambuf
打开)到函数,它给了我一个BADACCESS,因为它试图执行
memcpy((theFile),(myiStream),(full size of the file))
我基本上想要一种"比特袋"对象,可以很容易地移动到不同的方法,以结构化的方式转换数据,但我不知道我应该如何实现它。
在c++中,您想如何处理这些数据?如果你只想要原始数据,那么你可以(例如)只创建一个std::vector<char>
, resize
,这样它就足够大,可以容纳所有的数据*,然后传递一个指针到它的第一个元素。
相关文章:
- 将字符串存储在c++中的稳定内存中
- C++ 指针的内存地址和指向数组的内存地址如何相同?
- Win32编译器选项和内存分配
- 当vector是tje全局变量时,c++中vector的内存管理
- 带内存和隔离功能的SQLite
- 是否可以通过C++扩展强制多个python进程共享同一内存
- 迭代时从向量和内存中删除对象
- 为什么istream不支持右值提取
- 将无符号char*转换为std::istream*C++
- 在C++中打印指向不同基元数据类型的指针的内存地址
- 这个指针和内存代码打印是什么?我不知道是打印垃圾还是如何打印我需要的值
- 多个文件的内存分配错误"在抛出 'std :: bad_alloc' what (): std :: bad_alloc 的实例后终止调用" [C++]
- 为什么示例代码访问IUnknown中已删除的内存
- 如何在C++类内存结构中创建"spacer"?
- 从构造函数抛出异常时如何克服内存泄漏
- malloc() 可能出现内存泄漏
- 如何理解将半精度指针转换为无符号长指针和相关的内存对齐
- ISTREAM 与内存映射文件
- 使用动态内存分配重载istream操作符
- 可以使用带内存的istream