11

在 C 中,我们有malloc()free()realloc()。在 C++ 中,我们有new(),delete()以及它们的数组版本。有 C++realloc函数吗?我在嵌入式领域实现了一些低级的东西,只是意识到没有realloc与 C++ 函数配对的函数,并想确保我没有遗漏任何东西。我猜“放置新”到一个新的、单独的缓冲区是最接近的匹配,但想确定一下。

稍微重述一下这个问题,因为我在远处得到了一些答案。

我已经实现了设备级 malloc/new/realloc/etc。我的嵌入式设备上的函数,并想仔细检查以确保没有我不知道的 C++ realloc 类型函数。

4

1 回答 1

4

不,没有直接的等价物。您必须自己进行实施。因为一个类真的不应该改变它的大小,所以这不是一个真正的问题。移动语义可以处理大多数情况。

但是,有些类使用标头信息 + 尾端分配的数据。要对这些“正确”进行编码,您必须重写该类的operator new()andoperator delete()函数来处理这些额外的“灵活”数据。您如何“重新分配”数据取决于您的需求。

如果这不能回答您的问题,请发布您正在尝试的示例。

于 2013-06-24T21:40:18.163 回答