C++ new 运算符——内存布局

标签 c++ oop memory

new 运算符是否保证分配连续的堆内存块? IE。是

objects=new Base[1024];

在内存分配方面与

objects=(Base*)malloc(1024*sizeof(base));

还是可以有差距?

最佳答案

是的,内存会是连续的。在分配方面,它与 malloc 版本相同,但有几个区别(调用构造函数,new 不返回 NULL , malloc 不会抛出异常等`).

请注意,您不能将 new[]deletefree 混淆,您必须使用 delete[]对象释放内存。

关于C++ new 运算符——内存布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10445365/

相关文章:

c++ - 如何使用GetWindowRect

javascript - 学习 OOP Javascript,我真的很努力,但它并没有陷入困境。任何人都可以帮我解决这个问题吗?

python - Python 中的过滤对象数组

c - 确定数组的长度以提高内存效率

c++ - Qt - 在 QGraphicsScene 中如何使用 itemAt 找到透明项目?

c++ - 如何使用 QProcess 在控制台窗口中启动和稍后终止 cmd.exe

c++ - zmq错误代码156384763的原因

java - 抽象方法与仅子类方法

linux - Docker 容器上的 ImageMagick 生成格式错误的 PNG 图像

performance - 如何限制 RAM 以测试低内存情况?