作者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