多少新的初始化内存到对象

How much new initialize the memory to object?

本文关键字:对象 内存 初始化 多少      更新时间:2023-10-16

我们知道malloc提供非序列化内存,而calloc则用零初始化内存。那么,c++中的新运算符在初始化对象时会给出什么值呢??

假设对象有一个构造函数,它将调用默认构造函数。

但是,像intfloatdoublechar这样的对象,所有形式的指针,等等,都没有默认构造函数[或"空"的默认构造函数],所以对这些对象什么都不做——你会得到new为你得到的内存中的任何东西——这些东西可能是零,也可能是以前分配的一些旧东西。

如果您特别想要,可以对new创建的内存块使用"值初始化",例如int *a = new int[size]();[零初始化]。

New基本上调用对象构造函数,并由您决定如何初始化对象。如果您不初始化它,您将在访问时获得垃圾值