new和malloc的区别
- new/delete是运算符,malloc/delete是库函数
- new申请内存时无需指定内存块的大小,malloc申请内存时需要指定内存的大小
- new/delete的返回值是有具体类型的指针,malloc/delete的返回值是void*类型指针,需要强制类型转换
- new/delete可以调用对象的构造函数和析构函数,后者只能动态申请和释放内存
- new/delete可以重载,后者不可以
- new内存分配失败时抛出bac_alloc异常,malloc内存分配失败时返回NULL