[問題] 也許是destructor的問題

看板C_and_CPP (C/C++)作者 (兌現承諾)時間14年前 (2011/09/12 00:45), 編輯推噓2(2033)
留言35則, 6人參與, 最新討論串1/1
開發平台(Platform): VC++ 問題(Question): int main() { // 一堆變數設值 // 一堆變數設值 // 一堆變數設值 for(int n = 1; n <= index; n++) { BOX(引入一堆參數) // BOX為自訂的class } } 當迴圈進行到第2次的途中,就有對話視窗跳出來告訴我 xxx.exe已經停止運作,請問問題出在哪呢? 我之前的笨方法是沒寫迴圈,程式執行完後再手動編譯執行, 這樣做就ok了,但是太累人了,人走不開電腦 ~.~ 謝謝解答囉! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.120.11.63 ※ 編輯: luckychild 來自: 140.120.11.63 (09/12 00:48)

09/12 00:47, , 1F
你可以把你的程式碼完整貼上來嗎?這樣有點難看出問題
09/12 00:47, 1F

09/12 00:47, , 2F
可以利用置底文的網址擺上程式碼
09/12 00:47, 2F

09/12 00:51, , 3F
難處在於我的程式是個project,不是單一程式碼,
09/12 00:51, 3F

09/12 00:52, , 4F
不好貼上來.BOX內就真的是個黑盒子,所有運算都在BOX那
09/12 00:52, 4F

09/12 00:53, , 5F
執行.我在猜是不是destructor的問題,在main裡是不是
09/12 00:53, 5F

09/12 00:54, , 6F
要補上BOX的destructor呢?
09/12 00:54, 6F

09/12 00:57, , 7F
如果真的有人能從這些資訊看出你的問題我會直接拜下去
09/12 00:57, 7F

09/12 01:16, , 8F
抱歉啦,那個BOX內也還有別的class,東西不少,貼出來可能
09/12 01:16, 8F

09/12 01:16, , 9F
太長了沒人要看.
09/12 01:16, 9F

09/12 01:18, , 10F
關鍵似乎在於迴圈內少了什麼,以致跟不用迴圈包住,
09/12 01:18, 10F

09/12 01:19, , 11F
我倒是在想,你有沒有用到array?有沒有越界?
09/12 01:19, 11F

09/12 01:20, , 12F
我用vector阿
09/12 01:20, 12F

09/12 01:21, , 13F
手動一次次從新執行不會有問題,寫在迴圈內就不行
09/12 01:21, 13F

09/12 01:22, , 14F
所以我才覺得可能什麼變數設值沒有清掉,一直在迴圈內跑
09/12 01:22, 14F

09/12 01:23, , 15F
才會想說是不是要來個destructor把東西清掉?
09/12 01:23, 15F

09/12 01:24, , 16F
迴圈每跑一次,destructor會自動被呼叫,不需要你自己叫
09/12 01:24, 16F

09/12 01:24, , 17F
回家休息先了,明天再來解決這個問題.
09/12 01:24, 17F

09/12 01:25, , 18F
是喔,我以為要main結束才會執行destructor
09/12 01:25, 18F

09/12 01:26, , 19F
這樣問題似乎更棘手了.
09/12 01:26, 19F

09/12 01:26, , 20F
你可以看這個簡單範例 http://pastie.org/2519076
09/12 01:26, 20F

09/12 01:26, , 21F
如果可能是資源沒釋放,檢查 destructor 是否沒寫好
09/12 01:26, 21F

09/12 01:30, , 22F
嗯,感謝!
09/12 01:30, 22F

09/12 01:43, , 23F
程式停止運作時有沒有什麼查看詳細資料之類的可以按?
09/12 01:43, 23F

09/12 01:44, , 24F
有時候裡面會show出來一些error code都可能是線索....
09/12 01:44, 24F

09/12 01:45, , 25F
話說, 都有VC了, 偵錯給它按下去應該也會叫起debugger
09/12 01:45, 25F

09/12 01:45, , 26F
給你機會debug它/稍微查一下發生了什麼事呀@_@"
09/12 01:45, 26F

09/12 02:40, , 27F
不然就是用逐步執行去慢慢跳了
09/12 02:40, 27F

09/12 02:54, , 28F
慢慢跳躍跳幾萬個step程式才會shut down =.=
09/12 02:54, 28F

09/12 02:55, , 29F
感覺也不太可能是destructor出錯,畢竟我
09/12 02:55, 29F

09/12 02:55, , 30F
沒用到動態記憶體配置阿.
09/12 02:55, 30F

09/12 02:57, , 31F
不知道哪個小觀念出問題呀.明早再來.
09/12 02:57, 31F

09/12 03:50, , 32F
請人偵錯只給這樣,真沒誠意
09/12 03:50, 32F

09/12 03:55, , 33F
最有可能出錯的地方是你自己要找出來的,不是別人幫找
09/12 03:55, 33F

09/12 03:58, , 34F
還附贈解決方案,就算這問題解決了,你下次還會再犯
09/12 03:58, 34F

09/12 04:01, , 35F
找個大好人,開遠端操控讓他遠端Debug,就可以了
09/12 04:01, 35F
文章代碼(AID): #1EREN6bB (C_and_CPP)
文章代碼(AID): #1EREN6bB (C_and_CPP)