怪事!为什么Debug和Release运行结果不一样呢?

徐蕴 2001-01-09 09:32:00
都能正常运行,可是运算出的结果不一样,主要是一些矩阵运算。请高手传授经验!
一般是由于什么原因造成的呢?
还有一个问题,为什么到析构函数的时候就出错呢?:
The instruction at "0x77f0511e" referenced memory at "0xfffffff5". The memory could be "written".
弄的我只有new而没法delete
...全文
498 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
elaiyo 2001-01-10
  • 打赏
  • 举报
回复
我在编程时也遇到这种情况。这是由于VC++ debug时和release时调用的dll不一样。如果release时调用的是xxx.dll,则debug时调用的是xxxd.dll。实际上这两个dll的运行过程及结果并不完全一样
Python 2001-01-10
  • 打赏
  • 举报
回复
1、仔细检查你用到的变量,包括局部变量,看看他们的初始值是否正确初始化
2、看看编译的优化选项,调节一下
zhaijunlong 2001-01-10
  • 打赏
  • 举报
回复
If the result is not identical. Pay attention to the speed of your program running. For instance:
you called a random number in your program for several times, and the random number will be the same one number if you run it too fast.
wuchuncai 2001-01-10
  • 打赏
  • 举报
回复
你的数组一定过界了,即使用的内存超过了所分配的内存,debug有一定的容错能力,所以程序还能正确运行
xiaozuo 2001-01-10
  • 打赏
  • 举报
回复
你用new定义了一个指针或者指针数组,但是使用过程中你又给该指针赋了其它的指针值,这样使用和用delete是都会出现问题。用查找命令检查一下指针名称,看一看赋值情况。
zzh 2001-01-10
  • 打赏
  • 举报
回复
先检查一下是不是指针有什么指的不对的地方,有没有进行初始化,如果用到了赋值语句,一定要注意内存拷贝时要拷贝的字节数一致,不然,会有操作失败,你也可以使用BoundChecker来检查一下,这个工具很好用了,特别对这种内存操作更有效
silver 2001-01-10
  • 打赏
  • 举报
回复
你析构的时候怎么delete的?

ar = new int[2];
delete []ar;

adrianx 2001-01-09
  • 打赏
  • 举报
回复
你访问数组超界了
xxwwdd 2001-01-09
  • 打赏
  • 举报
回复
可能是数组使用有问题,比如定义a[2],而在程序中使用了a[2]这就会出问题,c中数组从0开始编号,2是数组的大小。

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧