多少新的初始化内存到对象
How much new initialize the memory to object?
我们知道malloc提供非序列化内存,而calloc则用零初始化内存。那么,c++中的新运算符在初始化对象时会给出什么值呢??
假设对象有一个构造函数,它将调用默认构造函数。
但是,像int
、float
、double
、char
这样的对象,所有形式的指针,等等,都没有默认构造函数[或"空"的默认构造函数],所以对这些对象什么都不做——你会得到new
为你得到的内存中的任何东西——这些东西可能是零,也可能是以前分配的一些旧东西。
如果您特别想要,可以对new
创建的内存块使用"值初始化",例如int *a = new int[size]();
[零初始化]。
New基本上调用对象构造函数,并由您决定如何初始化对象。如果您不初始化它,您将在访问时获得垃圾值
相关文章:
- 迭代时从向量和内存中删除对象
- 有没有一种方法可以使用placement new将堆叠对象分配给分配的内存
- Constexpr替代了新的放置方式,可以让内存中的对象保持未初始化状态
- 对具有动态分配的内存和析构函数的类对象的引用
- 当指向对象的指针作为参数传递给 std::thread 时,内存可见性
- 内存清理程序报告全局对象构造中未初始化值的使用
- 如何删除列出的"QGraphicsPathItem"对象以控制进程内存使用情况?
- 准确了解对象在内存中的映射方式
- 完全释放静态对象内存
- C++ 对象内存管理
- 循环中的自动变量和自动对象内存分配
- 每个对象内存分配有多少开销
- 是隐式创建的默认构造函数,负责分配对象内存
- 使用 make_unique 语句重新分配unique_ptr对象 - 内存泄漏
- C++对象内存布局
- C++对象内存消耗
- 谷歌模拟全局模拟对象内存泄漏
- 静态工厂方法和静态对象内存泄漏
- 关于对象内存布局的假设
- 如果我在管理C++对象内存的目标 C 中混合C++代码,ARC 会处理它