在c++中,依然支持从c继承过来的malloc和free,但是与new和delete的区别是:malloc是库函数,用malloc申请内存是对库函数的调用,不属于编译器管理的范畴,也就是说编译器无法控制其行为,使用malloc只是单纯的申请一块内存空间,不能调用自定义类型的构造函数。而new却是属于操作符,在编译器管理的范围之内。这样,当申请的内存类型为自定义类型时,如果用malloc申请,则不会执行该类的构造函数,因为构造函数的执行是由编译器执行的,而如果用new进行申请内存,则会执行该类的构造函数。同样free对于析构函数也是一样的。
分享好友
分享这个小栈给你的朋友们,一起进步吧。
星说
创建时间:2019-11-28 12:45:43
作为炎黄子孙,我们有很多知识渊博的祖人,这个祖人指的是在各领域登峰造极的学者论说,我们跟随强大基因的路线,学习,深化自己的知识体系,优化环境。
展开
订阅须知
• 所有用户可根据关注领域订阅专区或所有专区
• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询
• 专区发布评论属默认订阅所评论专区(除付费小栈外)