new/delete 和malloc/free的区别是什么
来源:互联网 发布:淘宝怎么买翻墙 编辑:程序博客网 时间:2024/05/21 07:01
在C++中,申请动态内存与释放动态内存,用new/delete和malloc/free都可以。而且存储方式相同,new 与 malloc 动态申请的内存都位于堆中,不能自动回收,需要对应的delete和free手动释放。malloc/free是C/C++语言的标准库函数,而new ,delete是C++的运算符,对于类的对象而言,malloc/free满足不了动态对象的要求,对象在创建的同时要自动执行构造函数,释放的同时要执行析构函数。new/delete可以执行构造函数和析构函数,而malloc和free则不行。主要区别如下:
1,new能够自动计算需要分配的内存空间,而malloc需要手工计算字节数。如 int *p1 = new int [2], int *p2 = malloc(2*sizeof(int)).
2, new与delete带具体类型的指针,malloc与free返回void类型的指针。
3,new是类型安全的,而malloc不是。
4,new调用构造函数,malloc不能;delete调用析构函数,free不能。
5,malloc/free需要库文件stdlib.h支持,new/delete不需要库文件支持。
sizeof() 属于C中的运算符,而strlen()则属于string中的函数,可以和上面对比记忆。
0 0
- new/delete 和malloc/free的区别是什么
- malloc/free 和 new/delete的区别
- malloc/free和new/delete的区别
- malloc/free 和 new /delete 的区别
- malloc/free和new/delete的区别
- malloc/free和new/delete的区别
- malloc/free 和 new /delete 的区别
- new/delete和malloc/free的区别
- new/delete和malloc/free的区别
- malloc/free 和 new /delete 的区别
- new/delete和malloc/free的区别
- new/delete 和malloc/free 的区别
- new/delete和malloc/free的区别
- new/delete 和 malloc/free 的区别
- new delete和 free malloc 的区别
- malloc/free和new/delete的区别
- malloc/free 和 new /delete 的区别
- malloc/free 和 new /delete 的区别
- 一个简单的递归
- UVA - 540 Team Queue
- cin和scanf
- Cover Letter
- hdu 5050——Divided Land
- new/delete 和malloc/free的区别是什么
- java enum
- HttpClient入门
- VS2012工程升级到VS2013错误处理
- 过程、函数的有效范围和同名问题
- struct与typedef struct
- hadoop 细节点
- Spring web.xm配置中各组件的启动顺序
- Vim编辑器插件安装及配置入门