new/delete和malloc/free的区别
- malloc和free是库函数,而new和delete是C++操作符
#inlcude <stdlib.h>
- new自己计算需要的空间大小,malloc需要指定大小
int* a = new int;
int* b = (int*)malloc(sizeof(int));
- new在动态分配内存的时候可以初始化对象,调用其构造函数,delete在释放内存时调用对象的析构函数。而malloc只分配一段给定大小的内存,并返回该内存首地址指针,如果失败,返回NULL。