欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

new delte与malloc free的区别

程序员文章站 2022-05-31 08:47:39
...
int *pi=new int;
int *pi=new int(1024);
int *p=(int *)malloc(25*sizeof(int));
序号 new malloc
1 new/delete是c++关键字 malloc/free是库函数,在头文件cstdlib中定义
2 new无需指定内存块大小 malloc需要显示指出需要内存的大小
3 new从*存储区上为对象动态分配内存 malloc函数从上动态分配内存
4 C++允许重载new/delete操作符 malloc不允许重载
5 new不止分配内存,并且会调用类的构造函数,delete会调用析构函数 malloc仅分配内存,不能进行初始化类成员的工作
6 new分配内存失败会抛出bad_alloc异常 malloc失败返回NULL