new的使用

1.使用new来分配内存
通用格式如下:
typeName *point_name = new typeName;
也就是为一个数据对象(可以是结构,也可以是基本类型)分配内存。

例如:

int *pn = new int;

//new int 告诉程序,需要一个存储int类型数据的内存,然后找到这样的内存并返回其地址,将地址赋值给pn,pn是被声明指向这个内存的指针。现在pn是地址,*pn是存储在那里的值。

将new方法与将变量的地址赋给指针进行比较:

int a;
int *pt= &a;

这两种情况(pn和pt),都是将一个int变量的地址赋值给指针。在第二种情况下,可以通过a来访问int,而第一种情况只能通过指针pn进行访问。
pt指向的内存的名称可以叫a,但pn指向的内存没有名称,如何称呼它呢?
我们可以说pn指向一个数据对象(这里的对象不是面向对象的对象),它指的是为数据项分配的内存块,变量也是数据对象,但pn指向的内存不是变量。

2.使用delete来释放内存

int *p = new int;
delete p;
//一定要配对使用new 和 delete

3.使用new创建动态数组
例如创建一个包含10个int元素的数组:

int *p = new int [10];

new运算符返回第一个元素的地址,改地址被赋给指针p。
当程序使用完new分配的内存块时,应使用delete释放他们。

//对于数组,应使用另一种格式的delete来释放
delete [] p;

参考《C++ primer Plus》(第六版)

  • 48
    点赞
  • 273
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值