概念性问题总结.docVIP

  • 81
  • 0
  • 约1.06万字
  • 约 10页
  • 2018-08-24 发布于贵州
  • 举报
概念性问题总结

PAGE PAGE 10 面试中概念性问题总结 1、new delete和malloc free的区别与联系? 面试中可以这样回答: 都是在堆(heap)上进行动态的内存操作。用malloc函数需要指定内存分配的字节数并且不能初始化对象,new 会自动调用对象的构造函数。delete 会调用对象的析构函数,而free 不会调用对象的析构函数。 详细讲解: = 1 \* GB3 ① malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都用于在堆(heap)上进行动态的内存操作(申请动态内存和释放内存)。 = 2 \* GB3 ② delete不仅会释放空间,在释放前会调用析构函数,和new对应,new调用构造函数,free只会释放内存。 = 3 \* GB3 ③ 对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象 在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加于malloc/free。因此C++语言需要一个能完成动态内存分配和初始化工作的运算符new,以及一个能完成清理与释放内存工作的运算符d

文档评论(0)

1亿VIP精品文档

相关文档