C++学习10:使用new分配内存

本文介绍了C++中使用new运算符动态分配内存的原理和方法,包括如何通过new创建和释放单个变量及动态数组。同时强调了new分配的内存位于堆中,应当使用delete进行释放。文章还给出了动态数组的创建示例,展示了如何根据实际需求动态分配内存,以提高内存利用率。
摘要由CSDN通过智能技术生成

在C++中,可以沿用C中的malloc分配内存,也可以使用new运算符。今天就来学习使用new分配内存。

new的作用和使用方法:

new的作用在于可以在程序运行阶段动态分配内存,内存的大小在运行时根据需要确定,从而高效利用内存空间。

new的使用方法如下:

typeName* pointer_name = new typeName
1
2
使用时用户需要指定类型(指针类型和要开辟的内存存储的数据类型),new可以自动找到一个正确长度的内存块,并返回内存块的地址。分配内存失败时,默认抛出bad_alloc异常。

比如:

int* p = new int;
1
这里指定了int型,new会自动找到适合存储int的内存,将地址返回赋给指针p。

此时,使用new开辟的内存块只能通过指针p来访问,这块内存是未命名的。

要注意一点:new分配的内存位于堆(heap)或自由存储区(free store)中,而常规变量分配的内存是在栈(stack)中。堆和栈的区别在于:栈(stack)由编译器自动分配释放,而堆(heap)一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。

在使用new时,释放内存的方法就是delete。

使用delete释放内存

delete可以释放内存供其他部分使用。方法十分简单,在delete后加指向待释放内存的指针即可&

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值