我们知道 malloc 提供未初始化内存,而 calloc 将内存初始化为零。那么c++中的new操作符在初始化对象时会给出什么值呢?
问问题
153 次
2 回答
5
假设对象有一个构造函数,它将调用默认构造函数。
但是诸如int
, float
, double
, char
, 所有形式的指针之类的对象都没有默认构造函数[或“空”默认构造函数],因此不会为这些对象做任何事情-您会得到任何发生在内存中的new
东西给你 - 这可能是零或以前分配的一些旧垃圾。
如果您特别愿意,您可以对由创建的内存块使用“值初始化” new
,例如int *a = new int[size]();
[零初始化]。
于 2013-07-27T08:51:30.880 回答
0
New 基本上调用一个对象构造函数,它取决于您要如何初始化对象。如果你不初始化它,你会在访问时得到垃圾值
于 2013-07-27T08:51:11.497 回答