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

时间:2011-03-15 09:03:19

标签: c++

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

我尝试了memcpy,但它无效。

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

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

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

我想在pMediaData中复制buf1

感谢

1 个答案:

答案 0 :(得分:4)

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

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

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

memcpy( buf1.data() , pMediaData.data() , pMediaData.Size() );
相关问题