Quote:
引用第3楼kangtalc于2007-08-23 21:11发表的 :
这其实根本就不是DELETE的问题啊
其实问题出在strcpy
你申请的内存空间只有11字节
strcpy中的源字符串常量"hello,world"是12个字节(外加一个)
你用12个字节的字符串常量复制到只有11个字节的空间中当然会出错
.......
不是strcpy错
是new 申请内存里会多申请一个字节来保存一个额外的信息用来delete。
delete通过这个额外的信息就可以判断new申請的內在大小了
像int *k = new int[10];
它會申請11個int
最後一个k[10]就是保存一个码给delete识别的
刚刚试了一下验证了这个想法
将k[10]改成其它值就会出错
改回来这没事了