看板 C_and_CPP 關於我們 聯絡資訊
我用VisualStudio 2008寫了一個 遞迴尋找最大值的程式 但是使用Debug建置執行結果都正確 但是使用Release後建置執行 數字一多就會結果錯誤 最大值都會變成很大的負數或是正數 有點像是變數沒有初始化的狀態 不知道問題出在哪 有人有類似經驗嘛? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.195.49.9
littleshan:你可能寫出了會產生 undefined behavior 的程式碼 10/05 16:26
littleshan:要看 code 才知道 10/05 16:26
VictorTom:也有可能是記憶體誤用, 以前用bool BOOL GLboolean之類 10/05 16:39
VictorTom:的東西, 就把1 byte的和4 bytes的搞錯, 結果Debug built 10/05 16:40
VictorTom:都沒有問題, 等到release built才會crash在奇怪的地方, 10/05 16:40
VictorTom:因為stack被搞爛了XD 10/05 16:41
herman602:我把Release的建置組態 最佳化關掉就好了@@ 10/05 17:56
VictorTom:不要做這種事!! 不要把潛藏的bug用矇馬眼的方式遮起來!! 10/05 17:57
ledia:不然的話他一定會在你最不想要他出來的時候出來 10/05 18:18
ledia:是說這連續兩推好像有點糟糕.... XD 10/05 18:18
VictorTom:怎麼說有點糟糕?_? 10/05 18:58
VictorTom:"如果你欺騙compiler, 它會報復你", 請樓下推原文....XD 10/05 18:58
kerickuo:ledia 好糟糕, 請暫時不要跟我說話(轉頭) 10/05 21:07
VictorTom:@_@" 10/05 21:29