const uint8_t* rtpData, size_t size; std::shared_ptr<uint8_t> m_rtpPackage; 如何把rtpData赋值给m_rtpPackage?
时间: 2024-09-25 22:14:54 浏览: 46
char 转wchar_t 及wchar_t转char
要将`const uint8_t* rtpData`和`size_t size`的内容赋值给`std::shared_ptr<uint8_t> m_rtpPackage`,可以使用`std::make_shared`来创建一个新的共享所有权对象并复制数据。这里是一个示例:
```cpp
// 创建一个动态分配的内存区域来存储 RTP 数据
std::vector<uint8_t> temp_data(rtpData, rtpData + size);
// 使用make_shared 创建一个新的 shared_ptr 并持有这个临时内存
std::shared_ptr<uint8_t> m_rtpPackage = std::make_shared<uint8_t>(temp_data.data(), temp_data.size());
```
在这个例子中,我们首先创建了一个临时的`std::vector`来保存原始数据,然后通过`data()`成员获取指向其内部数据的指针,作为`make_shared`的参数。这样,当`temp_data`生命周期结束时,`m_rtpPackage`也会自动释放所持有的内存。
阅读全文