Chinaunix首页 | 论坛 | 博客
  • 博客访问: 522146
  • 博文数量: 147
  • 博客积分: 10105
  • 博客等级: 上将
  • 技术积分: 1594
  • 用 户 组: 普通用户
  • 注册时间: 2006-06-14 10:18
文章分类

全部博文(147)

文章存档

2011年(4)

2010年(4)

2009年(6)

2008年(5)

2007年(40)

2006年(88)

我的朋友

分类:

2006-11-20 17:41:59

程序老是出错,后来发现是执行delete这句时出错了。可是这是一个简单的子程序,就一个new和一个delete,看上去并没有问题。
   char * p = new char[len];
   delete []p;
   难道程序中改变了p,加上const,char * const p = new char[len],可是一到delete这句还是出错。最后仔细看了一下程序,char *p = new char[len]这句被写成了char *p = new char(len)。改过来,运行程序,一切正常。
   这里如果忘记了写delete可能运行时也不会出错,但是程序运行时将会使用未申请的空间,留下更难发现的BUG。
 
  new   char[len];  申请len[个数]个连续的空间。 
  new   char(len];  申请一个char大小空间,并用char(int)这个构造函数来初始化这个对象 。
              char(len)把内置类型char看作是类来处理,以构造函数形式初始化对象,char = len。
阅读(690) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~