new/delete 与 malloc/free 的区别
来源:互联网 发布:michael angelo知乎 编辑:程序博客网 时间:2024/05/20 02:29
转自:
http://www.cnblogs.com/witxjp/archive/2011/03/14/1983793.html
相同点:都可用于申请动态内存和释放内存
不同点:
(1)操作对象有所不同。
malloc与free是C++/C 语言的标准库函数,new/delete 是C++的运算符。对于非内部数据类的对象而言,光用maloc/free 无法满足动态对象的要求。对象在创建的同时要自动执行构造函数, 对象消亡之前要自动执行析构函数。由于malloc/free 是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加malloc/free。
(2)在用法上也有所不同。
函数malloc 的原型如下:
void * malloc(size_t size);
用malloc 申请一块长度为length 的整数类型的内存,程序如下:
int *p = (int *) malloc(sizeof(int) * length);
我们应当把注意力集中在两个要素上:“类型转换”和“sizeof”。
- malloc/free 与 new/delete 的区别
- 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的区别
- malloc/free与new/delete的区别
- 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的区别
- malloc/free与new/delete的区别
- new/delete 与 malloc/free 的区别
- xcode 4.2 bug of my mac 32-bit or my mac-64 bit
- 纯真IP数据库查询,C#.NET实现。
- 二叉树的一些概念
- 委托和事件
- Java中取得当月最后一天的四种方法
- new/delete 与 malloc/free 的区别
- [Android环境搭建] INSTALL_FAILED_MISSING_FEATURE
- 二叉搜索树
- 企业家最困难的事就是“开始”
- 使用MAVEN构建并管理项目
- 自动化测试中不同uid 之UI touch操作
- java得到年月日小时分秒
- MSSQL日期时间函数大全
- 简单的socket通讯