c/c++中malloc/free和new/delete的区别
2013-03-24 21:08
274 查看
1、malloc与free是c/c++语言的标准库函数,new/delete是c++的运算符. 他们都可以申请动态内存和释放动态内存
2、对于非内部数据类型(比如用户自定义的类)而言,只用malloc/free无法满足要求。因为类的对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。
由于malloc/free是库函数而不是运算符,不在编译器的控制权之内,不能够吧执行构造函数和析构函数的任务强加于malloc/free
3、new自动计算所需分配的空间大小,而malloc需要显示给出
4、new自动返回相应类型的指针,而malloc需要强制转换
因此c++需要一个能完成动态内存分配和初始化工作的运算符new,以及一个能完成清理与释放内存工作的运算符delete。
2、对于非内部数据类型(比如用户自定义的类)而言,只用malloc/free无法满足要求。因为类的对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。
由于malloc/free是库函数而不是运算符,不在编译器的控制权之内,不能够吧执行构造函数和析构函数的任务强加于malloc/free
3、new自动计算所需分配的空间大小,而malloc需要显示给出
4、new自动返回相应类型的指针,而malloc需要强制转换
因此c++需要一个能完成动态内存分配和初始化工作的运算符new,以及一个能完成清理与释放内存工作的运算符delete。
相关文章推荐
- C++中的new/delete和malloc/free的区别
- c++中的malloc/free 和 new/delete这两对的区别
- 深入理解C++动态内存管理:malloc/free和new/delete的区别和联系
- C++中new/delete和malloc/free的区别
- C++中,malloc/free和new/delete的区别
- C++中malloc/free和new/delete的区别---补充(15)《Effective C++》
- C语言中的malloc/free与C++中的new/delete的区别
- c/c++ 复习基础要点01-const指针、指针函数 函数指针、new/delete与malloc/free区别与联系
- C/C++语言中malloc/free和new/delete的区别
- malloc/free和new/delete的区别
- C++中malloc/free和new/delete 的使用
- malloc/free和new/delete的区别和联系
- malloc/free 和new/delete的区别
- new/delete和malloc/free的区别深入解析
- malloc/free和new/delete的区别及使用要点(转)
- C++中,new/delete和malloc/free的区别
- C++中new delete 与malloc free的区别
- malloc/free和new/delete的区别
- c++中malloc,free,new,delete区别和联系
- C++中的new/delete与malloc/free