问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

用vc6.0编写滴程序没有显示有错,可是执行起来就如下图!!!这是为什么???

发布网友 发布时间:2022-06-12 22:43

我来回答

1个回答

热心网友 时间:2023-10-10 11:10

       如果编译器报这样的错,几乎可以肯定是在程序中,数组访问越界。例如:

int main()

{

       int *p=new int[5];

       p[-1]=3;

       delete [] p;

       return 0;

}

当执行至delete 语句时,就会弹出上图那个对话框,报damage before normal block

如果程序修改成这样

int main()

{

       int *p=new int[5];

       p[5]=3;

       delete [] p;

       return 0;

}

执行至delete语句时,则会报damage after normal block 的错误。

       什么是normal block?在使用new 操作符为指针申请内存空间时,VC编译器为该指针分配的内存空间就是normal block。这段内存空间每个字节的初始值均为 CD h 。并且把该段内存空间之前4个字节和之后4个字节

的初值赋值为FDFDFDFD h。

       用VC的Memory工具可以方便地查看到这段新分配的内存空间的内容。如上面的两个程序,VC为指针p申请的内存空间地址从0x00032f48起始。用Memory查看这个地址附近的内容,就是下图显示的内容:

       在用delete 释放该段内存空间时,编译器会检查该段内存之前4个字节内容和之后4个字节内容是否有被改动。如果有,则分别报damage before normal block和damage after normal block。

       但是,VC编译器的这种检错功能是十分有限的,防止数组访问越界,主要靠程序员自己小心。如上面的

程序中,如果让p[-2]=3,即对内存地址0x00032F44之前的内存进行改动,编译器是检测不出这样的错误的。同理,对p[6]赋值,或者将p[5]=0xFDFDFDFD,编译器都不会报错的。

追问我可以给你程序你帮我看看问题在哪么??

那怎么修改才行啊

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...换手机号显示你以设置拒收微信登陆.换绑.注册短信怎么解决? 伊拉克战争是哪些国家发动的?请快回答,我有急用! 二零零三年三月谁发动了对伊拉克的战争 西门子、美的、容声三个门的冰箱那个牌子又省电又实用? 海尔冰箱BCD-206 SCFM 放3档工作多长时间 ,停多长时间正常 海尔BCD-206SCFM基本参数 6年级上册数学练习册百分数50到53页答案 小学数学六年级(上):帮你学数学口算练习册2008年印刷版信息 小学数学六年级(上):帮你学数学口算练习册2010年印刷版信息 小学六年级数学上册百分数练习册《课堂作业本》答案64面第2题 在win10环境下安装了VC++,编写的程序运行不了是怎么回事,没有错误 vc编译连接都没有错误,为什么不能运行啊,点运行没反映啊 NBA中有哪些挥霍天赋最终没有取得好成绩的球员? 准备贷款买车,苏州和连云港哪个地方买车便宜划算,还有购车税这些事怎么算的呢? 罗技无线鼠标M235在使用unifying后原配接收器无法识别,怎么办呢? 伤口止血后还用每天擦碘伏吗?有血肉裸露在外 基本乐理一级考试需要带笔和书吗 养鱼籽要放盐吗? 鱼籽下塘后期怎么喂养? 如何养鱼籽? 理财嘉是什么?怎么样? 开机进去自动修复,然后显示电脑未正确启动,重启也没有用,怎么 电脑一直持续自我保护关机重启,n遍。求解决 笔记本电脑用的时候温度过高就强制关机了,怎么解决?听说是CPU 的自我保护,该怎么处理,挺纠结的 电脑自我保护怎么办 怎么宣传QQ号 怎么像网络红人一样推广qq号 快捷支付和转账到支付宝支付有什么不同 快捷支付与支付宝支付有什么不同吗? 快捷支付和支付宝有什么不同 日本神户这个城市怎么样? 日本的神户算不算大城市? 驻旧金山大使行政级别 中国驻美国旧金山总领事馆,为什么这么容易遭受攻击 中国南方航空公司驻旧金山办事处的电话号码,地址? 我最近病了需要手术,怎样向男友开口借钱?他很爱我。我希望不要给他压力,只要他开心快乐。 hkicpa考试对于英语有什么要求 梦见被狗咬的伤痕累累,预示什么 做梦都梦见自己伤痕累累,我要离婚 我要离婚 我要离婚 梦见自己被好多狗咬屁股到处都是伤痕累累 梦见老公和他的情和好,自己伤痕累累 早上起床后空腹吃水果好吗?求大神帮助 epidata可以下载到平板吗 请问epidata软件在哪可以下载到免费版的?谢谢 epidata下载 谁有EpiData的下载软件包吗? 谁能直接给我一个epidata软件,谢谢了 求spss19中文软件 要免费的 下载就可以使用的。还有epidata软件 QQ:1003441884 平板电脑怎样打开epidata软件每天需要去单位录入数据,携带电脑不方便,想用平板电脑运行epi hobo -- 测光照