在C ++中是否有realloc等价物?

时间:2013-06-24 21:20:44

标签: c++ c memory-management

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

稍微重复一下这个问题,因为我得到的回答有点远。

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

1 个答案:

答案 0 :(得分:4)

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

但是,有些类使用标头信息+尾端分配的数据。要对这些“正确”进行编码,您必须覆盖该类的operator new()operator delete()函数,以处理这些额外的“灵活”数据。如何“分配”数据是根据您的需求而定的。

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