在 C 中,我们有 malloc()
、free()
和 realloc()
。在 C++ 中,我们有 new()
、delete()
及其数组版本。是否有 C++ realloc
函数?我正在嵌入式领域实现一些低级的东西,只是意识到没有 realloc
函数可以与 C++ 函数配对,我想确保我没有遗漏任何东西。我猜测“放置新”到一个新的、单独的缓冲区中是最接近的匹配,但我想确定一下。
稍微重述一下这个问题,因为我得到的答案有些遥远。
我已经实现了设备级 malloc/new/realloc/等。我的嵌入式设备上的功能,并想仔细检查以确保没有我不知道的 C++ realloc 类型的功能。
最佳答案
不,没有直接的等价物。您必须自己执行。因为一个类确实不应该改变它的大小,所以这不是真正的问题。移动语义可以处理其中的大多数情况。
但是,有些类使用头信息+尾端分配的数据。要“正确”编写这些代码,您必须重写 operator new()
和 operator delete()
函数,以便类处理这些额外的“灵活”数据。您如何“重新分配”数据取决于您的需求。
如果这不能回答您的问题,请张贴您正在尝试的示例。
关于c++ - C++ 中是否有等效的 realloc?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17285326/