初入C++——动态内存分配

本文详细介绍了C++中如何使用new和delete运算符进行内存分配与释放,包括分配单个变量和数组的过程,以及释放内存的正确方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C语言中使用malloc()函数开辟内存空间,使用free()函数来释放内存;而C++使用new运算符来分配内存,使用delete来释放内存。

1.分配一个变量

形式如下:

P = new T;

T是任意类型名,P是类型为T* 的指针。整行代码的意思是动态分配出一片大小为sizeof(T)字节的内存空间,并且将该内存空间的起始地址赋值给P,例如:

int* p = new int;
*p = 6;

或者

int* p;
p = new int;
*p = 6;

2.分配一个数组

形式如下:

P = new T[N];

N为要分配的数组元素的个数,可以是整型表达式,例如:

int n = 5;
int* p = new int[n * 6];
for(int i = 0; i < n * 6; i++) //初始化置0
    p[i] = 0;

或者

int n = 5;
int* p = new int[n * 6](); //初始化置0

3.delete释放内存

用“new”动态分配的内存空间,一定要用 “delete”运算符进行释放,即:

delete 指针/[]指针(前者用于释放动态分配的变量;后者用于释放动态分配的数组)

例如:

int* p = new int;
*p = 5;
delete p;
delete p; //导致异常,一片空间不能被delete多次
int* p = new int[20]; 
p[0] = 1;
delete []p;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值