[問題] 可編譯但執行死當QQ

看板C_and_CPP作者 (heymei)時間14年前 (2011/08/26 20:19), 編輯推噓4(4021)
留言25則, 6人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) C 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) math.h memory.h 問題(Question): 小弟目前對兩張yuv格式的圖 做Motion estimation,經過ME後會產生MV及residualdata 我寫完residual data 可編譯但執行直接死當 一直找不出錯誤 ~_~ 餵入的資料(Input): 一張reference的yuv檔 一張current的yuv檔 預期的正確結果(Expected Output): 可執行。 錯誤結果(Wrong Output): 但直接死當 程式碼(Code):(請善用置底文網頁, 記得排版) http://codepad.org/TROWEyfi 貼到CodePad方便大大們看>"< 若把residual註解掉,則程式可執行,而且也可以把MV匯出到txt,但只要加了residual 就死當,我後來把 (**)那行換成簡單的printf也不行,有點搞不清楚到底哪裡錯= = 請鄉民幫忙提點了QQ MV[u][v].maxi , MV[u][v].max_j 是我用來存每個與ref block最像的位置,而且 我宣告成整數,我之前也懷疑過這裡,於是我寫新的變數來代替它,還是死當= = -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.234.185

08/26 20:21, , 1F
記憶體超出邊界?
08/26 20:21, 1F

08/26 20:43, , 2F
(**)那邊 group_cur[][] 兩個都是MV[u][v].max_i 怪怪的?
08/26 20:43, 2F

08/26 20:43, , 3F
(**)那行換成簡單的printf也不行
08/26 20:43, 3F

08/26 20:44, , 4F
那有可能是之前就有問題了?
08/26 20:44, 4F

08/26 21:03, , 5F
可是我註解掉residual那整堆,是可以執行的說 = =
08/26 21:03, 5F
※ 編輯: heymei0421 來自: 140.113.234.185 (08/26 21:05)

08/26 21:13, , 6F
你開一個空的程式, 放進去最後一段4層 for-loops,
08/26 21:13, 6F

08/26 21:13, , 7F
裡面的程式用你把(**)換成printf()
08/26 21:13, 7F

08/26 21:14, , 8F
我想不出什麼原因會使得這樣的程式不能跑?
08/26 21:14, 8F

08/26 21:16, , 9F
你不覺得有好好的貼code的網站不用很可惜嗎...
08/26 21:16, 9F

08/26 21:17, , 10F
他還幫你上色呀
08/26 21:17, 10F

08/26 21:18, , 11F
我覺得這只會跑很久耶...
08/26 21:18, 11F

08/26 21:20, , 12F
測試問題的時候,忌諱的是問題測半套(另外一半是自己動過
08/26 21:20, 12F
※ 編輯: heymei0421 來自: 114.37.163.25 (08/26 21:25)

08/26 21:30, , 13F
所以你用group_cur[MV[u][v].max_i][MV[u][v].max_j]也錯?
08/26 21:30, 13F

08/26 21:30, , 14F
那就是MV[][]的問題吧 你的max從temp_array[0][0]開始比較
08/26 21:30, 14F

08/26 21:30, , 15F
如果temp_array[0][0]就是最大值 那max_i max_j就沒給值了
08/26 21:30, 15F

08/26 21:32, , 16F
你跑1 到 160579584 (要輸出)要多久
08/26 21:32, 16F

08/26 21:34, , 17F
你可以拒絕當測試人員啊 我只是根據原po給的資料來分析
08/26 21:34, 17F

08/26 21:34, , 18F
問題會出現在哪邊.
08/26 21:34, 18F

08/26 21:40, , 19F
現在有不可以編譯了= =好像try太多次結果有些東西
08/26 21:40, 19F

08/26 21:40, , 20F
忘了改回來Orz
08/26 21:40, 20F
※ 編輯: heymei0421 來自: 114.37.163.25 (08/26 21:54)

08/26 21:54, , 21F
謝謝k大提醒^^
08/26 21:54, 21F

08/26 22:07, , 22F
嚴格來說不能用 memset, 不過我想你有其他嚴重問題要解決
08/26 22:07, 22F

08/26 22:24, , 23F
memset ? 為何
08/26 22:24, 23F

08/26 22:28, , 24F
對不起是我的錯。用 unsigned char 沒事不用擔心。
08/26 22:28, 24F

08/26 22:59, , 25F
最近常常因為看太快造成別人困擾,真不好意思 orz
08/26 22:59, 25F
文章代碼(AID): #1ELuzars (C_and_CPP)