我的缓冲区中有http请求的内容。 然后我定义了另一个与最后一个相同大小的缓冲区。 我需要将缓冲区的内容复制到我的新缓冲区。 所以我需要的帮助是如何将一个缓冲区复制到另一个缓冲区。
我尝试了memcpy
,但它无效。
void TrivialMediaPlayer::DeliverMediaData(
int streamId,
bool bHasPriority,
ConstBufferSptr pMediaData)
我想要的是将pMediaData
的内容复制到新缓冲区。
BufferSptr buf1 (new Buffer (pMediaData->Size()) );
我想在pMediaData
中复制buf1
。
感谢
答案 0 :(得分:4)
我不确定您从一个StringSptr复制到另一个StringSptr的确切代码是什么。 但如果你想
memcpy( (void*)buf1 , (void*)pMediaData , pMediaData.Size() );
您必须确保在BufferSptr类中定义“void *”函数(看起来像是您编写的类),以将BufferSptr对象转换为指向内部缓冲区地址的实际C指针。登记/> 或者,使用一些显式调用:
memcpy( buf1.data() , pMediaData.data() , pMediaData.Size() );