日期:2011-03-22 13:54:00 来源:本站整理
delete释放空间时出错的缘由[VC/C++编程]
本文“delete释放空间时出错的缘由[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
int *a=new int[10];
......
delete []a;
----------------------------------------------------------
当背面delete []a;呈现错误的情形大致有:
1.数组的首地址a被你有意无意更改了,如:a++之类的;
2.变量的作用域问题,如:你是在一个函数体中new的,却在另一个函数体中delete,这时的a变量已经失效了,这时delete会呈现a为不熟习的标识符的错误;
3.先前已经delete过一次了,不可以delete两次;
4.内存拜候越界,VC分配内存,除了分配你需求的内存空间外还会分配一些管理单元,就在你分配空间的上界和下界,比方内存边界标志(0xFDFDFDFD),假如是数组在上界会记录数组元素的个数,你如果改正了这些管理信息,delete的时刻就会报错.
以上是“delete释放空间时出错的缘由[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论