1、debug和release的运行结果不一样

这个问题困扰了我很久,网上说是变量初始化的问题,开始我并不相信,但结果证明是初始化的问题,注意当开辟一片新内存之后,要立刻memset进行初始化,即使后边并没有作为判断条件或赋给别的变量。当出现release和debug结果不一样时,可以先查看工程在运行过程中输出的一些文件,进行对比,找到不一样的大致位置(用uedit的文本比较功能),然后在程序中添加一些变量的输出到文件,逐步确定问题所在。

2、debug下运行正确,release下报内存错误

我遇到这个问题的原因是数组越界了,但很奇怪,在debug下居然没有报错。当在release下报内存错误时,不要按确定退出程序,选择取消然后到调试界面,通过堆栈窗口定位到错误所在,最好多重现几次错误,出错地方相同时再到程序相应代码段处,看一下附件的数组变量有没有出现越界的情况。

 

 

万恶的release啊!