• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • YouClaw
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
nathaniel pong
一个小子在默默的学习
博客园    首页    新随笔    联系   管理    订阅  订阅

C++中new和delete的使用

New的使用:

可以动态分配数组或者是单个对象;int *p=new int;或者 int *p=new int[常量表达式]。

注意动态申请空间的时候不需要给出指定的名字的。New返回的是申请空间的首地址。

 

动态创建对象的初始化:按照变量直接初始化的规则去初始化申请的内存空间。

最好还是初始化:int *p=new int();

注意:值初始化的()是在类型名后面,而不是变量的后面。否者是定义一个函数

如:int x();

 

Delete的使用:

Delete不能释放不是new分配的内存。但是可以delete值为0的指针。C++中没有明确定义如何释放不是用new分配的指针。

 

 

Delete掉指针后的该指针称为悬垂指针。它指向曾经存放对象的内存当中,但该对象已经不存在。若使用该指针还是会读取出对应内存现有的值。所以最好delete后把指针置0.

 

 

Const对象的分配与回收:

动态创建const必须初始化.new返回的是const对象的地址,因此只能赋值给指向const对象的指针。注意:没有默认构造函数的类类型或者是内置类型必须显示初始化。

 

Const  int *p=new cons tint(1024);

Const string *p=new const string;(默认构造函数)

 

删除const对象:delete p  即可。

posted on 2012-07-11 21:58  nathaniel pong  阅读(100)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3