CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

delete [] str出错!

楼主ytzhanche(战车)2006-03-21 12:49:43 在 C/C++ / C++ 语言 提问

程序代码如下所示:  
  class   String      
  {  
  char   *str;  
  int     len;  
  public:  
  String(int   length   =   0);  
  String(const   char*);  
  virtual   ~String();  
  char*       show()   const;  
  };  
   
  String::String(int   length)  
  {  
          len   =   length;  
  str   =   new   char(len   +   1);  
  if   (str   ==   NULL)   exit(1);  
  str[0]   =   0;  
  }  
   
  String::String(const   char*   s)  
  {  
  len   =   strlen(s);  
  str   =   new   char(len   +   1);  
            if   (str   ==   NULL)   exit(1);  
  strcpy(str,s);  
  }  
   
  char*   String::show()   const  
  {  
          return   str;  
  }  
   
  String::~String()  
  {  
          delete   []   str;  
  }  
   
  void   main()   {  
    String   u("This   is   a   test");  
    cout   <<   "   u   =   "   <<   u.show()   <<   endl;  
  }  
  This   is   a   test能正确显示出来,但进入析构函数delete   []   str;时出错!请高手帮忙解决该问题  
  问题点数:30、回复次数:1Top

1 楼xiaocai0001(高楼目尽欲黄昏/梧桐叶上萧萧雨)回复于 2006-03-21 12:53:18 得分 30

str   =   new   char(len   +   1);  
  ----------------  
  圆括号和方括号是不一样的语法  
   
  申请数组应该改为  
  str   =   new   char[len   +   1];  
  其他的照着改~  
  Top

相关问题

  • delete 出错.
  • Table1->delete 出错,
  • FileStream.ReadBuffer(Str,n)出错!
  • delete[] 使用出错.
  • 关于delete出错
  • delete 对象出错??
  • update,delete,insert into 出错!!!
  • delete 内存出错
  • delete 出错(Invalid Address specified to RtlFreeHeap)
  • Delete指针时出错?

关键词

  • null
  • str
  • len
  • delete
  • const
  • show
  • exit
  • length
  • char

得分解答快速导航

  • 帖主:ytzhanche
  • xiaocai0001

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo