我正在使用網絡API,它將1個或多個消息的列表返回到我提供的緩衝區中。一個典型的緩衝看起來像這樣在返回:重分配內存塊
|B|message 1|S|message 2|S|message 3|E|
凡| B |是表示開始的字符,| S |是分隔符,而| E |結束了。消息可以具有不同的長度和數量。我想要做的就是遍歷這個緩衝區一次,並將其分解成(在本例中)3個組件消息,併發送類似std::unique_ptr<char*>
的代碼,以處理每個單獨的消息,並讓unique_ptr負責釋放記憶。但我想這樣做,而不是將這些消息從緩衝區中複製到較小的消息中。
是否有一種技術可以有效地將緩衝區分配到新的較小的堆塊中,並且仍然可以獲得自動清理的好處?
查找展示位置新。 –