new和malloc有什么区别?
时间: 2023-12-09 12:03:55 浏览: 85
Malloc和new区别
new和malloc都可以用来在堆上分配内存,但是它们之间有几个重要的区别:
1. new是C++的运算符,而malloc是C语言的库函数。
2. new会调用对象的构造函数进行对象初始化,而malloc不会。因此,对于C++类的对象,使用new更为方便。
3. new返回的是类型安全的指针,而malloc返回的是void指针,需要进行强制类型转换。
4. new可以重载,而malloc不能。
5. new抛出异常而不是返回NULL,这使得代码更加健壮。
综上所述,对于C++程序,建议使用new来分配内存,特别是对于需要进行对象初始化的情况。而在C程序中,malloc是唯一的选择。
阅读全文