[C++]C++动态存储分配

分配空间

  • new 类型名X(初值列表)
    • 功能:申请用于存放X类型对象的内存空间,并依初值列表赋以初值。
    • 结果值:
      • 成功:X类型的指针,指向新分配的内存
      • 失败:0(NULL)
int *p1 = new int;

new int:表示从内存中动态分配一块int类型的空间,获得这块空间的地址。
new出来的这块空间也是就得到这块空间的地址,所以它必须赋值给一个指针变量。

int *p2 = new int(10);

直接给这块空间赋上初值,加个括号,括号里写10。
表示new了一块int类型的空间,这个空间存储了数字10。
把这个新的空间赋值给指针变量p2,也就是p2指针变量指向存储了10的这个新分配的空间,p2存储的是新分配空间的地址。指针p2示意图如下图所示。
指针示意图
关于指针的基本概念可以查看此篇:[C/C++]C/C++中 *和&、指针和地址 的基本概念

释放空间

  • delete 指针p
    • 功能:释放指针P所指向的内存。
      p必须是new操作的返回值。
delete p1;

总结

  1. new分配一块空间,获得这块空间的基地址;
  2. new获得基地址,所以它必须赋值给一个指针变量;
  3. delete释放空间。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值