C++分配/释放动态内存

int n;int *p=&n;这两条语句创建了静态数据,内存的分配方式是静态分配。在C++中用new来动态分配内存,得到分配内存的首地址(C中是malloc系统函数),用new分配的内存在使用完之后要释放(delete),否则造成内存泄露。

1.分配一个某类型长度对应的内存,如int型 也可以时char  double,类  删除:delete 指针

int *p; p=new int;或int *p=new int;

获取p地址中的数据(*p)

point *p=new point(1,2);//调用相应构造器

获取对象中的成员变量,注意私有成员不可在类外访问:p->x或(*p).x

调用成员函数,私有成员外部不可访问:p->getX()或(*p).getX()

删除:

delete p;

2.连续分配多个内存,删除 :delete [] 指针

double *p=new double[50];

point *p=new point[10]; //每个point对象调用无参构造器构造的

point *p=new point(1,2)[10];//错误在c++98中

point *p=new point[10](1,2);//错误c++98

删除:

delete [] p;

注意:delete 指针 或 delete [] 指针 释放的是动态分配的那段内存(new的对象)


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值