[問題] 走迷宮 vector

看板C_and_CPP (C/C++)作者 (Cory)時間13年前 (2013/04/14 00:27), 編輯推噓0(009)
留言9則, 2人參與, 最新討論串1/1
問題(Question): vector 存取爆炸了 餵入的資料(Input): http://codepad.org/oghLZUaQ 預期的正確結果(Expected Output): 列印出走迷宮的路徑 錯誤結果(Wrong Output): 印一個奇怪的座標 然後就停了 程式碼(Code):(請善用置底文網頁, 記得排版) http://codepad.org/YNGDFu45 補充說明(Supplement): 原本寫了 1 個多小時的版本 大致OK 後來簡化修改之後 反而完全跑不出來 QQ debug 弄了很久 毫無頭緒 只要在 mazeSolve() 內存取 explored vector 就會爆炸 拜託各位神人幫忙看一下 萬分感激 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.201.20

04/14 00:37, , 1F
explored[x][y] xy超界或小於0?
04/14 00:37, 1F
可是在 debug mode 跑到 explored.size() 他就爆了 實在不知道為什麼 ...

04/14 00:46, , 2F
mazeSolve 裡不要用 else if
04/14 00:46, 2F
可是不加好像解不出來 ※ 編輯: cory8249 來自: 140.114.201.20 (04/14 00:49)

04/14 00:49, , 3F
你可以試試看用單步執行的方式 debug
04/14 00:49, 3F
有 我從進入 mazeSolve 開始有設 breakpoint 然後 next line 慢慢看變數 然後我發現只要有存取 explored 就會爆炸 像是第 25 . 26 行 拿來測試的 他就爆了 實在不解 因為只是個 reference 明明在 main 測試都很正常 跑進 mazeSolve() 就會爆 ... ※ 編輯: cory8249 來自: 140.114.201.20 (04/14 00:52)

04/14 00:52, , 4F
那你可能需要先去了解整套的演算法,再來檢查你的程式碼
04/14 00:52, 4F

04/14 00:53, , 5F
是不是照著你的預期在運行
04/14 00:53, 5F

04/14 01:02, , 6F
使用的是哪個編譯器?
04/14 01:02, 6F
演算法想法應該沒太大問題 因為剛剛有跑出正確答案 把語法架構修正一下 就不知道爆在哪邊了 Compiler 是 MinGW with GCC 4.7.1 ※ 編輯: cory8249 來自: 140.114.201.20 (04/14 01:11)

04/14 01:19, , 7F
應該是你的 if 跟 else 沒對到
04/14 01:19, 7F

04/14 01:20, , 8F
至於 explored 爆掉應該是 debugger 有 bug
04/14 01:20, 8F

04/14 01:30, , 9F
後來全部參數重想重設一次 又可以正常了 大概是哪邊某個參數弄錯了 不好意思 打擾了 感謝各位幫忙 ※ 編輯: cory8249 來自: 140.114.201.20 (04/14 02:25)
文章代碼(AID): #1HQOTyyQ (C_and_CPP)
文章代碼(AID): #1HQOTyyQ (C_and_CPP)