我正在使用网络API,它将1个或多个消息的列表返回到我提供的缓冲区中。一个典型的缓冲看起来像这样在返回:重分配内存块
|B|message 1|S|message 2|S|message 3|E|
凡| B |是表示开始的字符,| S |是分隔符,而| E |结束了。消息可以具有不同的长度和数量。我想要做的就是遍历这个缓冲区一次,并将其分解成(在本例中)3个组件消息,并发送类似std::unique_ptr<char*>
的代码,以处理每个单独的消息,并让unique_ptr负责释放记忆。但我想这样做,而不是将这些消息从缓冲区中复制到较小的消息中。
是否有一种技术可以有效地将缓冲区分配到新的较小的堆块中,并且仍然可以获得自动清理的好处?
查找展示位置新。 –