C、C++概念题总结.docVIP

  • 62
  • 0
  • 约1.4万字
  • 约 10页
  • 2016-10-12 发布于贵州
  • 举报
C、C概念题总结

面试中概念性问题总结 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程序只能用ma

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档