1、申请内存所在位置不同
new:*存储区
malloc:堆
2、返回类型安全性
new:返回的就是对象类型,不需要进行强制类型转换,因此是内存安全的
malloc:返回的是void*类型,需要强制类型转换
3、内存分配失败时的返回值
new:分别配失败,会抛出bac_alloc异常
malloc:分配失败返回NULL
4、是否需要指定内存大小
new:不需要
malloc:需要
5、operator new /operator delete的实现可以基于malloc,而malloc的实现不可以去调用new
等等。。。。。。
https://www.huaweicloud.com/articles/06543baad284a30d54f3711f89e36aed.html