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