5. C 中的 malloc 和 C++ 中的 new 有什么区别
malloc 和new 有以下不同:
① new、delete是操作符,可以重载,只能在C++ 中使用。
② malloc、free 是函数,可以覆盖,C、C++中都可以使用。
③ new 可以调用对象的构造函数,对应的delete 调用相应的析构函数。
④ malloc 仅仅分配内存,free 仅仅回收内存,并不执行构造和析构函数
⑤ new、delete返回的是某种数据类型指针,malloc、free返回的是 void指针。
注意:malloc 申请的内存空间要用free 释放,而new 申请的内存空间要用delete 释放,不要混用。因为两者实现的机理不同。