c++ - 将缓冲区内容复制到另一个缓冲区

标签 c++

我的缓冲区中有一个 http 请求的内容。 然后,我定义了另一个与上一个缓冲区大小相同的缓冲区。 我需要将缓冲区的内容复制到我的新缓冲区。 所以我需要的帮助是如何将一个缓冲区复制到另一个缓冲区。

我尝试了 memcpy 但它不起作用。

void TrivialMediaPlayer::DeliverMediaData(
        int                         streamId,
        bool                        bHasPriority,
        ConstBufferSptr             pMediaData)

我想要的是将 pMediaData 的内容复制到一个新的缓冲区。

BufferSptr buf1 (new Buffer (pMediaData->Size()) );

我想在 buf1 中复制 pMediaData

谢谢

最佳答案

我不确定您编写的确切代码是从一个 StringSptr 复制到另一个。 但如果你想

memcpy( (void*)buf1 , (void*)pMediaData , pMediaData.Size() );

您必须确保您应该在 BufferSptr 类(看起来像是您编写的类)中定义了“void*”函数,以将您的 BufferSptr 对象转换为指向内部缓冲区地址的真实 C 指针。< br/> 或者,使用一些显式调用:

memcpy( buf1.data() , pMediaData.data() , pMediaData.Size() );

关于c++ - 将缓冲区内容复制到另一个缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5309494/

相关文章:

c++ - 如何声明相互引用的类?

c++ - 对于已定义的符号,静态库链接问题 "Undefined symbols"

c++ - 是否强制要求短路逻辑运算符?和评价顺序?

c++ - std::condition_variables 可以用作计数信号量吗?

c++ - 字符串本地化缺少一些特殊字符

c++ - 自动提升算术运算

C++ 按值传递结构或对象

c++ - 为什么我的代码总是跳过 C++ 的 else 语句?

c++ - 使用 dllimport 代替 dllexport

c++ - 使用 2 个参数函数构造 std::thread 时出错