- 8
- 0
- 约7.86千字
- 约 10页
- 2015-11-20 发布于江苏
- 举报
C、C++概念性问题总结.doc
面试中概念性问题总结
1、new delete和malloc free的区别与联系?
面试中可以这样回答:
都是在堆(heap)上进行动态的内存操作。用malloc函数需要指定内存分配的字节数并且不能初始化对象,new 会自动调用对象的构造函数。delete 会调用对象的析构函数,而free 不会调用对象的析构函数。
详细讲解:
① malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都用于在堆(heap)上进行动态的内存操作(申请动态内存和释放内存)。
② delete不仅会释放空间,在释放前会调用析构函数③ 对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象 在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加于malloc/free。因此C++语言需要一个能完成动态内存分配和初始化工作的运算符new,以及一个能完成清理与释放内存工作的运算符delete。注意new/delete不是库函数。
④ C++程序经常要调用C函数,其实new/delete内部也调用了malloc/free。
而C程序只能用mall
您可能关注的文档
最近下载
- 2025_2026学年天津市天津市河北区八年级下学期4月期中数学检测试卷 [含解析].docx
- 2018年江西省中考物理试卷(含答案解析).doc VIP
- 标准图集-S501-1~2 单层、双层井盖及踏步(2015年合订本).pdf VIP
- (完整版)京东亚洲一号东莞麻涌物流园项目施组.docx VIP
- 十年高考真题(2014-2023)分项汇编 生物 专题08 有丝分裂和减数分裂 含解析.docx VIP
- 徒手整形的优势.pptx VIP
- 面部美学设计讲解.pptx VIP
- 2025年部编版四年级下册道德与法治《期中测试卷》附答案(完整版) .pdf VIP
- 横泽隆史的场合全文整理.doc VIP
- 四川农业大学研究生学位论文格式规范【模板】.docx
原创力文档

文档评论(0)