作者damody (天亮damody)
看板C_and_CPP
標題Re: [問題] VS2008 run time check failure 3
時間Tue Jul 16 19:40:20 2013
※ 引述《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)
推 flere:int k = ooxx; 這方法我有試過了耶 07/16 20:12
→ flere:確實換成realease mode就OK了~順帶一提這個呼叫的是OpenCV 07/16 20:12
→ flere:裡面的cvsurf這些functionOAO他就是這樣寫的> < 07/16 20:13
→ flere:cvExtractSURF 呼叫這個函式裡面引發的,並不是我們寫的部分 07/16 20:17
→ flere:然後出問題的k是用在for迴圈,for一開始當然有宣告k=0就是了 07/16 20:18
推 cuteclare:-.-所以說cvExtractSURF拿到了未定義的k是它自己的錯囉? 07/16 21:29
→ flere:因為那部分的code是opencv裡面的..OAO很神奇的是,並不是每張 07/16 21:30
→ flere:圖片都會這樣,但那個發生問題的位置,是所有圖片都會經過的.. 07/16 21:31
→ flere:我前天直接改裡面的宣告,改成int k=0;也是會出現問題> < 07/16 21:31
→ cuteclare:如果改掉還噴警告~那請某某神祇加持一下會比較好 07/16 21:36
→ cuteclare:確定有compile過? 還是根本搞錯了問題的所在 07/16 21:37
推 flere:確定有過,因為出現警告後我按繼續的輸出,跟我現在變成realea 07/16 21:38
→ flere:se模式的輸出是一樣的!! 07/16 21:38
推 Killercat:其實這是用VS開發的問題,VS debug會刻意把所有的沒初始 07/17 07:09
→ Killercat:化的指標在debug下初始化成0xfeeefeee 07/17 07:09
→ Killercat:gcc不會 所以其實開發者不見得知道VS debug下會有問題 07/17 07:10
→ Killercat:其實我還滿喜歡0xfeeefeee這種做法的... XD 07/17 07:10
→ Killercat:也就是因為這原因 所以debug mode下vs查出多餘的東西 07/17 07:10
→ Killercat:是很正常的,不過真要說很嚴重的話到也不見得.... 07/17 07:11
推 flere:了解了~~~感謝各位大大~!! 07/17 09:02
推 lairrol:那這東東就記起來吧~不然之後也是一堆問題... 07/17 13:04
→ Killercat:也沒什麼太大問題啦,gcc未初始化的變數是空指標 07/17 13:36
→ Killercat:vs release也是 唯一有問題的就是if(k) .....; 07/17 13:36
→ Killercat:這種寫法k要是沒賦值的話 debug會進不去 release會進去 07/17 13:37
→ Killercat:....其實仔細想想這也是滿災難性的就是 -_-a 07/17 13:37
→ Killercat:誒上面debug/release寫反了 debug會進去release進不去 07/17 13:38
→ damody:去試最新版吧!應該修正完了。 07/17 13:55
推 lairrol:改新版也很災難... 07/17 16:43
→ damody:沒有不災難的 open source 大部份的project又沒有QA在Q 07/18 03:07
→ damody:都是靠你們這些使用者回報,然後作者看心情要不要修。 07/18 03:08
推 a60301:淚推樓上QAQ 07/18 04:13
※ 編輯: damody (114.43.105.94), 06/06/2014 06:13:59