您的位置:首页 > 其它

有了 malloc/free 为什么还要 new/delete ?

2016-08-10 00:38 176 查看
malloc与free是C++/C语言的标准库函数,new/delete是
C++的运算符。它们都可用于申请动态内存和释放内存。对于非

内部数据类型的对象而言,光用
malloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在

消亡之前要自动执行析构函数。由于malloc/free 是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造

函数和析构函数的任务强加于malloc/free。因此C++语言需要一个能完成动态内存分配和初始化工作的运算符new,以及

一个能完成清理与释放内存工作的运算符delete。注意new/delete不是库函数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: