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 |
上一篇: PHP 生成RSS 类
下一篇: 传智健康项目讲义第三章二