在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后加指向待释放内存的指针即可&
C++学习10:使用new分配内存
最新推荐文章于 2023-11-12 12:24:24 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)