Re: [問題] VS2008 run time check failure 3

看板C_and_CPP作者 (天亮damody)時間11年前 (2013/07/16 19:40), 10年前編輯推噓8(8023)
留言31則, 6人參與, 最新討論串2/2 (看更多)
※ 引述《flere (人間失格)》之銘言: : 開發平台(Platform): (Ex: VC++, GCC, Linux, ...) : VS2008 : 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) : OpenCV : 問題(Question): : 在用visual studio 2008開發時 : 要把圖片作曲feature的動作 : 幾千張圖片後 : 忽然出現了一張圖片會出現這樣的錯誤訊息 : Run-Time Check Failure #3 - The variable 'k' is being used without being : initialized. : 於是我直接把這張圖片抓出來做 : 發現也是一樣的情形(大部分的圖片都可以,出問題的機會約1/1000 : 問題是,當我按下繼續後他會順利的把該做的事做完 : 但是我有8萬張圖片 : 我也無法在電腦前守著慢慢按 : 請問要把這個訊息條掉要去哪邊設定呢?? : 謝謝大家!!> < : 餵入的資料(Input): : 8萬張圖片 : 預期的正確結果(Expected Output): : 錯誤結果(Wrong Output): : 程式碼(Code):(請善用置底文網頁, 記得排版) : 滿多.cpp跟.h這邊就不貼了Q__Q : 補充說明(Supplement): 我跟你說你今天跑的結果大部份可能是錯的你信不信! 看你的信息就知道你有東西沒有初始化, 看你的字,就知道你對這個程式完全不了解, 大概是接別人的程式, 不然不會講 : 請問要把這個訊息條掉要去哪邊設定呢?? 這種話, 跟你說,換 Release Mode 編譯就好, 根據我的經驗,只有少部份人只會編 Debug Mode, 不過這根本沒有解決問題, 拜託把問題確實解決, 不要用國軍那套搓搓搓把問題搓掉 OK? 請問要把這個訊息條掉要去哪邊設定呢?? 跟 請問要怎麼把這個 bug 解決? 這其實有差別喔? 這個沒初始化就是有機會讓程式當掉, 說什麼出問題的機率 千分之一, 說不定每張都錯你還以為是對的, 不過這應該不是目前的您能判斷的。 http://ppt.cc/dMUd 像這個範例一樣,程式自己都不知道要switch到哪邊? 每次都看天吃飯, 喔,不是,是看OS來 switch~~ 好險你是用 Debug Mode 在跑, 如果你用 Release Mode , C++ 就學國軍自己吞下去, 當掉了也不會跟你說半句話。 =============小老鼠版本=============== 你... ...您好。 我的國中英文程度看了一下你的錯誤信息, 發現這句話 : Run-Time Check Failure #3 - The variable 'k' is being used without being : initialized. 翻成中文,好像是 "執行期確認(第三種) 這個變數 'k' 還沒初始化前就被使用了" 我英文不好,也不知道翻的對不對, 感覺只要搜尋 int k; 改成 int k = ooxx; 就OK了。 不過我的感覺通常不是很準,您最好 小心 的做一下 地毯式搜索。 ============分隔島要撞到你了=========== 都寫到那麼多 .CPP .H 的人不可能問這種問題啦! 我只能說,出來混,總是要還的, 也許是交接的學弟幫你還 Q_Q 程式的錯不是最近幾天才有的, 是很久以前就有了,只是之前運氣好, 剛好沒有執行到這行,或是用 Release 執行。 最近看了很多影響心情的新聞, 如果冒犯請說,讓我們好好教學相長! -- 【板主:memy/cat0405/icyfang】[LoL] ILP 5 : TPA vs. Fnatic 看板《LoL》 [←]離開 [→]閱讀 [Ctrl-P]發表文章 [d]刪除 [z]精華區 [i]看板資訊/設定 [h]說明 編號 日 期 作 者 文 章 標 題 人氣:8912 m爆12/01 Xargon □ [電競] IPL5 世界,總決賽。 Day2 -- ※ 發信站: 批踢踢實業坊(ptt.cc)

07/16 20:12, , 1F
int k = ooxx; 這方法我有試過了耶
07/16 20:12, 1F

07/16 20:12, , 2F
確實換成realease mode就OK了~順帶一提這個呼叫的是OpenCV
07/16 20:12, 2F

07/16 20:13, , 3F
裡面的cvsurf這些functionOAO他就是這樣寫的> <
07/16 20:13, 3F

07/16 20:17, , 4F
cvExtractSURF 呼叫這個函式裡面引發的,並不是我們寫的部分
07/16 20:17, 4F

07/16 20:18, , 5F
然後出問題的k是用在for迴圈,for一開始當然有宣告k=0就是了
07/16 20:18, 5F

07/16 21:29, , 6F
-.-所以說cvExtractSURF拿到了未定義的k是它自己的錯囉?
07/16 21:29, 6F

07/16 21:30, , 7F
因為那部分的code是opencv裡面的..OAO很神奇的是,並不是每張
07/16 21:30, 7F

07/16 21:31, , 8F
圖片都會這樣,但那個發生問題的位置,是所有圖片都會經過的..
07/16 21:31, 8F

07/16 21:31, , 9F
我前天直接改裡面的宣告,改成int k=0;也是會出現問題> <
07/16 21:31, 9F

07/16 21:36, , 10F
如果改掉還噴警告~那請某某神祇加持一下會比較好
07/16 21:36, 10F

07/16 21:37, , 11F
確定有compile過? 還是根本搞錯了問題的所在
07/16 21:37, 11F

07/16 21:38, , 12F
確定有過,因為出現警告後我按繼續的輸出,跟我現在變成realea
07/16 21:38, 12F

07/16 21:38, , 13F
se模式的輸出是一樣的!!
07/16 21:38, 13F

07/17 07:09, , 14F
其實這是用VS開發的問題,VS debug會刻意把所有的沒初始
07/17 07:09, 14F

07/17 07:09, , 15F
化的指標在debug下初始化成0xfeeefeee
07/17 07:09, 15F

07/17 07:10, , 16F
gcc不會 所以其實開發者不見得知道VS debug下會有問題
07/17 07:10, 16F

07/17 07:10, , 17F
其實我還滿喜歡0xfeeefeee這種做法的... XD
07/17 07:10, 17F

07/17 07:10, , 18F
也就是因為這原因 所以debug mode下vs查出多餘的東西
07/17 07:10, 18F

07/17 07:11, , 19F
是很正常的,不過真要說很嚴重的話到也不見得....
07/17 07:11, 19F

07/17 09:02, , 20F
了解了~~~感謝各位大大~!!
07/17 09:02, 20F

07/17 13:04, , 21F
那這東東就記起來吧~不然之後也是一堆問題...
07/17 13:04, 21F

07/17 13:36, , 22F
也沒什麼太大問題啦,gcc未初始化的變數是空指標
07/17 13:36, 22F

07/17 13:36, , 23F
vs release也是 唯一有問題的就是if(k) .....;
07/17 13:36, 23F

07/17 13:37, , 24F
這種寫法k要是沒賦值的話 debug會進不去 release會進去
07/17 13:37, 24F

07/17 13:37, , 25F
....其實仔細想想這也是滿災難性的就是 -_-a
07/17 13:37, 25F

07/17 13:38, , 26F
誒上面debug/release寫反了 debug會進去release進不去
07/17 13:38, 26F

07/17 13:55, , 27F
去試最新版吧!應該修正完了。
07/17 13:55, 27F

07/17 16:43, , 28F
改新版也很災難...
07/17 16:43, 28F

07/18 03:07, , 29F
沒有不災難的 open source 大部份的project又沒有QA在Q
07/18 03:07, 29F

07/18 03:08, , 30F
都是靠你們這些使用者回報,然後作者看心情要不要修。
07/18 03:08, 30F

07/18 04:13, , 31F
淚推樓上QAQ
07/18 04:13, 31F
※ 編輯: damody (114.43.105.94), 06/06/2014 06:13:59
文章代碼(AID): #1HvJ4lKm (C_and_CPP)
文章代碼(AID): #1HvJ4lKm (C_and_CPP)