当前位置: 首页 > news >正文

关于DAMAGE: after Normal block的问题 【from http://blog.sina.com.cn/s/blog_a4864fde01014962.html】...

前几天师弟调试程序的时候出现了这样一个错误,出错的位置是在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”。一般是后者居多。
 
因此,当你遇见这个错误的时候,记得去检查一下自己数组的赋值吧。

转载于:https://www.cnblogs.com/songtzu/p/3347534.html

相关文章:

  • ispoweroftwo 判断2的次幂【转】
  • 用 puppeteer 获取 jd 商品评论
  • LightOJ 1033 区间dp
  • 多线程停止的方法
  • Java 学习(18)--列表(List)/ 集合 (Set)/ 泛型 / Map
  • Koala – 开源的前端预处理器语言图形编译工具
  • 头晕的奶牛 C组模拟赛
  • 文件头修改工具
  • 网络编程知识整理
  • 在IDEA中,MAVEN项目依赖报错问题(dependencies中总是有红色波浪线)
  • React 16 Jest快照测试
  • 常用的商业级和免费开源Web漏洞扫描工具
  • 从零开始学习部署
  • python:unittest之跳过测试和预期失败的用例
  • [转载] 以下划线开头的变量
  • Angular 响应式表单 基础例子
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • Java精华积累:初学者都应该搞懂的问题
  • oschina
  • Python十分钟制作属于你自己的个性logo
  • redis学习笔记(三):列表、集合、有序集合
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • web标准化(下)
  • 电商搜索引擎的架构设计和性能优化
  • 搞机器学习要哪些技能
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 使用Tinker来调试Laravel应用程序的数据以及使用Tinker一些总结
  • 微信小程序--------语音识别(前端自己也能玩)
  • 移动端解决方案学习记录
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • 异常机制详解
  • 应用生命周期终极 DevOps 工具包
  • MPAndroidChart 教程:Y轴 YAxis
  • Prometheus VS InfluxDB
  • 阿里云服务器购买完整流程
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • #传输# #传输数据判断#
  • #每天一道面试题# 什么是MySQL的回表查询
  • $.ajax,axios,fetch三种ajax请求的区别
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (黑客游戏)HackTheGame1.21 过关攻略
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (十六)Flask之蓝图
  • (实战篇)如何缓存数据
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (未解决)macOS matplotlib 中文是方框
  • (转)JAVA中的堆栈
  • *p++,*(p++),*++p,(*p)++区别?
  • .locked1、locked勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .net Application的目录
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • .Net 知识杂记