作者herman602 (奸商)
看板C_and_CPP
标题[问题] Release跟Debug结果不同
时间Mon Oct 5 15:53:42 2009
我用VisualStudio 2008写了一个
递回寻找最大值的程式
但是使用Debug建置执行结果都正确
但是使用Release後建置执行
数字一多就会结果错误
最大值都会变成很大的负数或是正数
有点像是变数没有初始化的状态
不知道问题出在哪
有人有类似经验嘛?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.195.49.9
1F:推 littleshan:你可能写出了会产生 undefined behavior 的程式码 10/05 16:26
2F:→ littleshan:要看 code 才知道 10/05 16:26
3F:推 VictorTom:也有可能是记忆体误用, 以前用bool BOOL GLboolean之类 10/05 16:39
4F:→ VictorTom:的东西, 就把1 byte的和4 bytes的搞错, 结果Debug built 10/05 16:40
5F:→ VictorTom:都没有问题, 等到release built才会crash在奇怪的地方, 10/05 16:40
6F:→ VictorTom:因为stack被搞烂了XD 10/05 16:41
7F:→ herman602:我把Release的建置组态 最佳化关掉就好了@@ 10/05 17:56
8F:推 VictorTom:不要做这种事!! 不要把潜藏的bug用蒙马眼的方式遮起来!! 10/05 17:57
9F:推 ledia:不然的话他一定会在你最不想要他出来的时候出来 10/05 18:18
10F:→ ledia:是说这连续两推好像有点糟糕.... XD 10/05 18:18
11F:推 VictorTom:怎麽说有点糟糕?_? 10/05 18:58
12F:→ VictorTom:"如果你欺骗compiler, 它会报复你", 请楼下推原文....XD 10/05 18:58
13F:→ kerickuo:ledia 好糟糕, 请暂时不要跟我说话(转头) 10/05 21:07
14F:推 VictorTom:@_@" 10/05 21:29