【动态内存2】:C++中的内存开辟与释放&&底层实现

本文介绍了C++中的动态内存管理关键字new和delete的使用,包括开辟单个变量、数组的内存,以及如何释放这些内存。new在分配空间时会调用构造函数,delete则会调用析构函数。文章还提到了二维数组的开辟与释放,并探讨了delete如何确定释放内存的大小。
摘要由CSDN通过智能技术生成

new与delete是用于开辟内存与释放内存,用于堆内存管理的两个关键字(标识符),与C语言中的malloc/free对应,new与delete相较于malloc和free实现机制更为复杂,new申请空间时还会调用构造函数,delete释放空间时还会析构函数。

注意:new/delete ;malloc 与free都要成对使用哦!!!以免内存泄漏

一、new的用法

   new是关键字,返回的是一个指向所分配类型变量(对象)的指针。对所创建的变量或对象,都是通过该指针来间接操作的。

(一)开辟单个变量

1、开辟方式 

  • 指针变量名 = new + 类型标识符 ; int * p = new int // 开辟一个存放整数的存储空间,返回一个指向该存储空间的地址。
  • 指针变量名  = new + 类型标识符 (做初始化的值);int *q = new int(5) //开辟一个存放整数的存储空间,并初始化赋值为5;

 2、简单应用:

int main()
{
    int *p = new int;   //未初始化
    cout<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值