malloc/free与new/delete的区别
2010-08-13 15:57
316 查看
相同点:都可用于申请动态内存和释放内存
不同点:
(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”。
不同点:
(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”。
相关文章推荐
- new/delete和malloc/free的区别
- new/delete与malloc/free的区别是什么
- malloc与new的区别,free与delete的区别
- malloc/free和new/delete的主要区别以及c与c++关于结构体定义使用的区别
- malloc/free与new/delete的区别
- malloc/free与new/delete的区别
- new delete和malloc free的用法与区别
- new/delete 和malloc/free 的区别
- malloc/free与new/delete的区别
- new delete和malloc free的区别
- malloc/free与new/delete的区别
- 转:malloc/free与new/delete的区别
- C++中new delete 与malloc free的区别
- malloc free /new delete区别
- malloc/free与new/delete的区别
- malloc/free与new/delete的区别
- malloc/free 和 new/delete的联系和区别
- new/delete 和malloc/free 的区别一般汇总
- new,delete,malloc,free的区别?
- new/delete和malloc/free的区别