1.new是运算符,而malloc是库函数
2.new可以重载,可以自定义内存分配策略,甚至不做内存分配,甚至分配到非内存设备上。而malloc不能。
3.new在用于定义一个新的非内部对象的时候,默认直接调用构造函数,在delete的时候,默认调用析构函数;
但是,编译器无法约束malloc库函数来调用构造函数,只能通过类似于Initialize()初始化函数来进行初始化。
4.void * malloc(size_t size);
malloc需要知道申请的内存空间的字节数,并且将返回的void*类型的地址,通过类型转换为需要的类型
new 可以直接方便的 new一个对象即可,返回类型为T*。
参考链接:http://blog.csdn.net/hackbuteer1/article/details/6789164