c++ - C++ 中是否有等效的 realloc?

标签 c++ c memory-management

在 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/

相关文章:

ios - 将 userLocation 打印到 textLabel

c++ - 开罗:如何将文本剪辑为矩形?

c++ - 你可以在 `std::remove_if` 的容器上使用 `std::unique_ptr` 吗?

c++ - 结构域上的智能指针

c - 为什么 valgrind 报告 glibc tsearch() 随机泄漏内存?

c - 如何使用子目录中的 Makefile 进行编译?

c++ - Windows 中的麦克风列表(输入设备列表)

c - 工作树遍历程序似乎不起作用

javascript - 是否可以减少 Google Chrome 为我的网页分配的内存?

c++ vector of vectors 销毁