程式加入迴圈後出現External exception EEFFACE |
答題得分者是:syntax
|
GGL
資深會員 發表:104 回覆:600 積分:335 註冊:2006-11-05 發送簡訊給我 |
Error 1:Project DBDWSN.exe raised exception class EAcessViolation with message 'Access Violation'
Error 2:Project DBDWSN.exe raised exception class EAcessViolation with message 'Exception Object Address: 0x1F13E72' Error 3:Project DBDWSN.exe raised exception class EAcessViolation with message 'Exception Object Address: 0x1F13F92' Error 4:External exception EEFFACE 我的程式會出現這些問題.... FindCycle()這一段 在for i=0 ~ 120 的時候,在120的時候會有以上的問題...ps如果只跑120不會有錯 trace code發現應該是在node[i].link_pairs出現問題,因為node[i].link_pairs.size() =0 導致for(int j=0;j 請問這是什麼原因? 我的code是用BCB2007寫的,之後有問題的時候我把改寫到BCB6,但是更慘連單獨跑一個值( Ex. i=1 )程式就會當在那不動... 問題大概出在第246行的sort(node[i].sets[count_m-1].One_Hop_Set.begin(),node[i].sets[count_m].One_Hop_Set.end());,因為跑到這一段就掛了,也沒跑到前面的for,也沒繼續往下跑.... 附上我的程式,希望有人能抽空幫我看看。 我目前是打算整個重寫看看是不是哪裡寫錯了....我猜想是某個東西overflow,但是又找不到問題所在... 謝謝
附加檔案:46bffb665cf76_BD.rar
|
syntax
尊榮會員 發表:26 回覆:1139 積分:1258 註冊:2002-04-23 發送簡訊給我 |
如果是用 link list 最好釋放物件記憶體時,也要一併清除參考,才不會發生違規的記憶體存取
例如 node[120].link_pairs 的 link_pairs 所指到的物件已被釋放,但這裡所記錄的記憶體位址,並未加以歸零 於後方使用回圈統一式的處理,就會使用此位址,而造成存取違規 建議 (一般都是說要 new 與 free 成對出現) 但使用 link list ,最好 free(node[120].link_pairs) 與 node[120].link_pairs = NULL 也是成對出現 for .....{ if (node[120].link_pairs != NULL) {} <---------------- 加入判斷 } 要是你有自己的記憶體管理與判斷方式,哪也行,只要記住,使用前先宣告,釋放後勿使用,釋放時一併清除參考,這大原則 「違規的記憶體存取」就不會來煩你 ===================引 用 GGL 文 章=================== Error 1:Project DBDWSN.exe raised exception class EAcessViolation with message 'Access Violation' Error 2:Project DBDWSN.exe raised exception class EAcessViolation with message 'Exception Object Address: 0x1F13E72' Error 3:Project DBDWSN.exe raised exception class EAcessViolation with message 'Exception Object Address: 0x1F13F92' Error 4:External exception EEFFACE 我的程式會出現這些問題.... FindCycle()這一段 在for i=0 ~ 120 的時候,在120的時候會有以上的問題...ps如果只跑120不會有錯 trace code發現應該是在node[i].link_pairs出現問題,因為node[i].link_pairs.size() =0 導致for(int j=0;j |
GGL
資深會員 發表:104 回覆:600 積分:335 註冊:2006-11-05 發送簡訊給我 |
|
GGL
資深會員 發表:104 回覆:600 積分:335 註冊:2006-11-05 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |