解决vc++DEBUG ERROR问题前几天师弟调试程序的时候出现了这样一个错误,出错的位置是在delete [] 一个动态分配的数组时出现的。 经过调查发现错误是因为他之前在给数组赋值的时候越界了
来源:互联网 发布:apache 最大post 编辑:程序博客网 时间:2024/04/30 00:09
前几天师弟调试程序的时候出现了这样一个错误,出错的位置是在delete [] 一个动态分配的数组时出现的。
经过调查发现错误是因为他之前在给数组赋值的时候越界了1个位置。
也就是double * a= new double [5],结果赋值的时候给a[5]=5。使用c++的同学都知道,一个5维的动态数组,调用时应该是0~4,但是这里给a[5]赋值并没有出错,反而是delete时才会出错。
这其实是因为在动态分配内存的时候往往分配的是一个连续的地址,这一点从可以使用*[a+3]来取值就能够知道。
因此,在动态分配的时候,会在数组界限外加一个用来标识数组范围的标志,例如a数组,就会在a[-1]和a[5]有两个标志,如果我们在这两个位置赋值,赋值和调用时并不会出错,而是在delete [] a时出错,错误的名称就是“DAMAGE: before Normal block”和“DAMAGE: after Normal block”。一般是后者居多。
因此,当你遇见这个错误的时候,记得去检查一下自己数组的赋值吧。
转自:http://blog.sina.com.cn/s/blog_a4864fde01014962.html
问题:
0 0
- 解决vc++DEBUG ERROR问题前几天师弟调试程序的时候出现了这样一个错误,出错的位置是在delete [] 一个动态分配的数组时出现的。 经过调查发现错误是因为他之前在给数组赋值的时候越界了
- 今天调试项目的时候总是出现数组越界的异常,解决了!
- vm8中装了redhat9 在安装vmwaretools的时候老是出现gcc位置错误
- 在VS调试的时候出现如下错误,生成下面的模块时,启用了优化或没有调试信息;
- 今天使用VC的时候碰见了一个这样的错误
- 布局时候出现的一个小错误
- 有没有前辈在开发android程序的时候出现这样的错误????
- 调试时候VS报了一个很奇怪的错误
- 在未安装IIS的情况下,先安装了.NET,则在调试程序的时候会出现下面的错误
- 是时候想想再上一个台阶的时候了
- 以前的某个程序安装在计算机上创建挂起文件操作,运SQL_server卸载了重装,往往是装不了.在安装SQL200的时候有个提示出现“以前的某个程序安装在计算机上创建挂起文件操作,运行安装程序之前必须重新启动计算机”,重起以后同样是这样..是什么原因阿?"后
- 在编译内核的时候出现了make menuconfig的错误
- 在加入域时又出现了“不能访问网络位置”的错误 的解决
- 每次写算法程序的时候总是纠结在动态分配内存上面,这次总算是明白了
- Android ListView在切换分类的时候发生错误.数组越界
- 在action里面构建JSONObject的时候出现了这个错误
- 在JSP页面引入jquery的时候发现,调试的时候发现报404错误
- 人生最痛苦的事是在一个问题上面出现两次错误
- 玩转Windows7的文件关联
- FTP/SFTP 文件传输协议
- 判断两个单链表是否有交点
- Ubantu 14.04 安装教程
- System命令用法
- 解决vc++DEBUG ERROR问题前几天师弟调试程序的时候出现了这样一个错误,出错的位置是在delete [] 一个动态分配的数组时出现的。 经过调查发现错误是因为他之前在给数组赋值的时候越界了
- HDU5769 Substring 后缀数组
- UVa11384-Help is needed for Dexter
- Unable to set the activation state to true for the application weblogic启动JNDI 报错
- Head First 适配器模式
- web.db下获取select后返回的column列表
- 微信小程序开发环境搭建
- Spring 事物管理
- tcp/ip小结