题头的话:长按点赞可私我赠送50+本C与C++书籍电子书资源
C++动态内存的分配与释放
程序运行时可以使用的内存空间称为堆(heap)。堆内存就是在程序运行时获得的空间,在程序编译和连接时不必确定它的大小,它随着程序运行过程变化(故堆内存也称为动态内存)。
C++可以使用从C标准库中继承来的malloc() 和free()函数 (此时应用到头文件malloc.h ),h或者是使用new和delete运算符。
new运算符
运算符new用于分配堆内存:
指针变量=new 数据类型;
new从堆内存中为程序分配可以保存某种类型数据的一块内存空间,并返回该内存的首地址,该地址存放于指针变量中。
delete运算符
运算符delete用于释放new动态分配中的内存的首地址。
关于两者的注意事项
(1)用于new获取的内存空间,必须用delete进行释放。
(2)对于一个指针只能调用一次delete。
(3)用delete运算符作用的对象必须是用new分配的内存空间的首地址。
new与delete应用举例
#include<iostream>
using namespace std;
int main()
{
int *p;
p=new int;//分配内存空间
*p