看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《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