new/delete、malloc/free关系

来源:互联网 发布:linux shell面试题 编辑:程序博客网 时间:2024/05/21 07:10

共同点:都用来申请和释放动态内存, 对于内置类型,两者的作用是相同的

差异:

1. new/delete是C++ 的关键字(操作符),malloc/free属于C/C++的标准库函数,调用时需要包含头文件;

2. new 自定义类型对象时,不仅分配内存,还调用类对象的构造函数进行成员初始化;

    delete 自定义类型对象时,不仅释放内存,还调用类对象的析构函数清理内存;

   而malloc/free只负责申请和释放内存。


malloc/free的存在理由:

 C++程序中常常调用C函数,C程序只能用malloc/free管理动态内存;

原创粉丝点击