- Malloc/free是库函数而不是运算符,不在编译器的控制范围之内,不能够把执行构造函数和析构函数的任务强加给他们。使用它们需要包含头文件
- New/delete是运算符而不是库函数,他们地位跟加减乘除一样。使用他们不需要包含头文件,而且可以重载
- New建立的是一个对象,你可以用成员函数访问它,但不要直接访问它的地址空间;malloc分配的是一块内存,就用指针访问就可以了,而且还可以在里面移动指针
- 使用new会初始化对象,调用对象的构造函数,对应的delete调用相应的析构函数
- Malloc仅仅分配内存,free仅仅回收内存