相同
new malloc 都是申请堆区空间
不同
malloc/free 是c/c++库函数,需要头文件<stdlib.h>,面向内存
new/delete 是c++的运算符,需要编译器支持,面向对象
语法
new
char* s=new int;
malloc
char* s=(char*)malloc(10);
//(char*是强转)
new用法
//一维数组
int* p=new int[4];
delete p;
//二维数组
int(*p)[4]=new int [3][4];
delete[] p;
注
!malloc是库函数,只能动态的申请和释放内存,无法强制其做自定义类型对象构造和析构工作,不能申请对象空间