由于malloc/free是库函数,不是运算符,他们不能执行构造函数和析构函数,只是负责分配内存。
1、malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。
2、对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加于malloc/free.
3、因此C++语言需要一个能完成动态内存分配和初始化工作的运算符new,以一个能完成清理与释放内存工作的运算符delete.注意new/delete不是库函数。
4、C++程序经常要调用C函数,而C程序只能用malloc/free管理动态内存
new 是个操作符,和什么“+”,“-”,“=”…有一样的地位。malloc是个分配内存的函数,供你调用的。
new是保留字,不需要头文件支持。malloc需要头文件库函数支持。
new 建立的是一个对象,malloc分配的是一块内存。
new建立的对象你可以把它当成一个普通的对象,用成员函数访问,不要直接访问它的地址空间。
malloc分配的是一块内存区域,就用指针访问好了,而且还可以在里面移动指针。
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
- Linux集群技术 (9099篇文章)
- 体验Linux的音影世界 (8767篇文章)
- Linux驱动大全 (9588篇文章)
- Linux下的路由的配置与应用 (12641篇文章)
- Linux命令简介 (10686篇文章)
- Linux防火墙 (10464篇文章)
- Linux日志专题 (9227篇文章)
- Linux服务器的安全性能 (21561篇文章)
- 揭秘Linux内存管理 (8833篇文章)
- 解析Linux文件系统 (9040篇文章)
- 三步让你的Ubuntu桌面美观并且高效 (408次浏览)
- Ubuntu自由潮流新宠 挑战微软桌面 (172次浏览)
- 巧用键盘快捷键 让你的Ubuntu 变得更快 (138次浏览)
- VMware虚拟机中安装Linux的若干问题 (128次浏览)
- 如何在Linux环境下安装Oracle 数据库11g (121次浏览)
- Linux FTP服务器和SVN服务器的配置 (109次浏览)
- 经典文档:Linux网络安全配置基础详解 (101次浏览)
- Vista、XP和Ubuntu Linux多系统安装方法 (91次浏览)
- 新手学堂:Linux操作系统网络安装总结 (82次浏览)
- Ubuntu发烧友三部曲 进阶篇 (77次浏览)



