为什么不能释放空间

pengjzp619 2003-09-12 10:48:57
为什么我分配了空间却释放不了呢
如下
char *tmp;

tmp = (char *)new char(16);
tmp[1] = 'a';
delete tmp;

为什么我在delete时程序要出错呢
damage:after normal block(#10) at 0x00431620

why??????????

谢谢谢谢
在线等待中。。。。。。。。。。。。。。。。
...全文
51 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
pengjzp619 2003-09-12
  • 打赏
  • 举报
回复
谢谢谢谢

谢谢
不好意思
小弟把c和c++搞混了
谢谢
l1ul1u 2003-09-12
  • 打赏
  • 举报
回复
tmp = (char *)new char[16];
new 语句写成上面这样
  • 打赏
  • 举报
回复
char *tmp;

tmp = new char[16];
tmp[1] = 'a';
delete[] tmp;
sevecol 2003-09-12
  • 打赏
  • 举报
回复
你的操作越界了
tmp = (char *)new char(16);只分配了一个char的空间
tmp[1] = 'a';越界,c++中数组下标从0开始,改成tem[0]='a';

69,368

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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