delete 何故会出错呢,code如下

yu3350360 2011-08-21 06:37:36

char* reverse(char *string)
{
int len=strlen(string);
char *s=new char(len+1);
for(int i=0;i<len;i++)
{
s[i]=string[len-i-1];
}
s[len]='\0';
return s;
}
int _tmain(int argc, _TCHAR* argv[])
{
char a[]="abcdefghi";
//changechar(a);
cout<<a<<endl;
char *sre=reverse(a);
cout<<sre<<endl;
delete sre; //这里怎么出错呢???
sre=NULL;
int i;
cin>>i;
return 0;
}
...全文
111 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
pathuang68 2011-08-21
  • 打赏
  • 举报
回复
吃一堑,长一智,下次小心就好。
yu3350360 2011-08-21
  • 打赏
  • 举报
回复
哈,这样滴错误确实很低级啊。
JiangXiang 2011-08-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jackyjkchen 的回复:]
char *s=new char(len+1);
你这是分配1字节并初始化位len+1……
[/Quote]
+++
shpanghao 2011-08-21
  • 打赏
  • 举报
回复
这些小错误的确有时很难发现的。
YuwenTims 2011-08-21
  • 打赏
  • 举报
回复
1楼正解
至善者善之敌 2011-08-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hqin6 的回复:]
char *s=new char(len+1);
==〉
char *s=new char[len+1];
[/Quote]


+++1,只分配了1个内存空间
jackyjkchen 2011-08-21
  • 打赏
  • 举报
回复
char *s=new char(len+1);
你这是分配1字节并初始化位len+1……
太乙 2011-08-21
  • 打赏
  • 举报
回复
char *s=new char(len+1);
==〉
char *s=new char[len+1];

65,187

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧