- 在C语言中,使用malloc开辟堆内存时,都不会对内存进行初始化,如果直接使用,可能会获取到奇奇怪怪的值。一般我们还会在后一句使用memset(p, 0, size)函数进行内存的清零初始化操作。
- C++在new时的初始化的规律为:
1、对于有自己写构造函数的类,不论类型名后面有没有括号,都用构造函数进行初始化;
2、如果没有构造函数,则不加括号的new只分配内存空间,不进行内存的初始化,
3、而加了括号的new会在分配内存的同时初始化为0。
- 所以一般我们最好都在类型名加括号进行初始化
Class *p = new Class();