1、new/delete是C++中的关键字 malloc/free是库函数
2、new申请内存失败会抛出bac_alloc异常malloc会返回NULL
3、 new会先调用operator new函数,申请足够的内存(通常底层使用malloc实现)。然后调用类型的构造函数,初始化成员变量,最后返回自定义类型指针。delete先调用析构函数,然后调用operator delete函数释放内存(通常底层使用free实现)。
malloc/free是库函数,只能动态的申请和释放内存,无法强制要求其做自定义类型对象构造和析构工作。
4、new/delete可以重载
5、new从自由存储区分配内存,malloc从堆中分配内存,自由存储区是C++中的概念。
本文来自 Datou_Nie 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/nie19940803/article/details/76358673?utm_source=copy