c++中的malloc/free 和 new/delete这两对的区别

本文深入探讨了C++中malloc/free和new/delete这两种内存管理方式的区别,重点介绍了它们在非内部数据类型上的不同行为,即new和delete会自动调用类的构造函数和析构函数,而malloc和free则不会。
摘要由CSDN通过智能技术生成

在c++中malloc/free 和 new/delete这两对都是对内存进行管理作用,但他们有很大的区别。

首先malloc、free是c/c++的标准库函数,注意他们是函数。而new和delete是c++的运算符,在c中式没有的。他们对内部数据类型没有什么太大区别,都是申请内存和释放内存,但是对非内部数据类型就能体现出来,由于c中没有类这个概念,所以用malloc时不会执行类的构造函数,使用free时也不会调用析构函数,而new和delete就会自动调用构造函数和析构函数。。

看下面的程序就能体现这个区别:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值