在C中,我们有malloc()
,free()
和realloc()
。在C ++中,我们有new()
,delete()
及其数组版本。是否有C ++ realloc
函数?我在嵌入式领域实现了一些低级的东西,并且意识到没有realloc
函数来配合C ++函数,并且想确保我没有遗漏任何东西。我猜测“将新位置”放入一个新的,单独的缓冲区是最接近的匹配,但我想确定。
稍微重复一下这个问题,因为我得到的回答有点远。
我已经实现了设备级malloc / new / realloc / etc.我的嵌入式设备上的函数,并想要仔细检查,以确保没有我不知道的C ++ realloc类型函数。
答案 0 :(得分:4)
不,没有直接的等价物。您必须自己完成实施。由于一个真正的类不应该改变它的大小,这不是一个真正的问题。移动语义可以处理大多数这些情况。
但是,有些类使用标头信息+尾端分配的数据。要对这些“正确”进行编码,您必须覆盖该类的operator new()
和operator delete()
函数,以处理这些额外的“灵活”数据。如何“分配”数据是根据您的需求而定的。
如果这不能回答您的问题,请发布您正在尝试的示例。