一個有關於vector的問題 |
|
z858328y
一般會員 發表:7 回覆:9 積分:3 註冊:2006-08-29 發送簡訊給我 |
各位高手: 想請問一下,我用了下面的方式宣告了一個動態的二維陣列,可是在resize時,CodeGuard Log會出現一個錯誤:Pointer in freed memory。請問一下問題可能在哪裡,謝謝。 vector m_dCriterion.resize(40); 而且在關閉程式時,也會因為這樣而出現CPU視窗,麻煩各位高手幫幫忙,謝謝。
|
justdo
高階會員 發表:2 回覆:359 積分:222 註冊:2004-08-17 發送簡訊給我 |
|
z858328y
一般會員 發表:7 回覆:9 積分:3 註冊:2006-08-29 發送簡訊給我 |
|
justdo
高階會員 發表:2 回覆:359 積分:222 註冊:2004-08-17 發送簡訊給我 |
|
aftcast
站務副站長 發表:81 回覆:1485 積分:1763 註冊:2002-11-21 發送簡訊給我 |
應該是CodeGuard裡關於Delay Free所造成的。它會自動的幫你把Delocate後的資源mark起來,若稍後有試圖去使用,則會出現問題。 若把功能關了,自然就不會有因mark而造成的"錯誤"現象。
我是有把CodeGuard Validation的功能打開後才會有這樣的訊息出現,如果把CodeGuard Validation的功能關閉的話,就不會出現這樣的問題,但是我想知道為什麼會有這種現象出現??這種現象是正常的嗎??我該怎麼修改才會ok??
------
蕭沖 --All ideas are worthless unless implemented-- C++ Builder Delphi Taiwan G+ 社群 http://bit.ly/cbtaiwan |
z858328y
一般會員 發表:7 回覆:9 積分:3 註冊:2006-08-29 發送簡訊給我 |
|
aftcast
站務副站長 發表:81 回覆:1485 積分:1763 註冊:2002-11-21 發送簡訊給我 |
聽你那麼說,應該沒錯,是你執行了二次的關係。因為第一次與第二次的時間很近,屬於在Delay Free內,所以會發生。放心吧,vector使用上沒什麼需要很注意的。至於CodeGuard上的問題通常都是來自於不夠完善的人為寫作所造成的。我看過不少程式設計人員都是答案出來就好,很少有像你這樣精細的,真是難得。但,時間就是金錢,要互相取捨,這是我多年來工作的經驗… :-)
------
蕭沖 --All ideas are worthless unless implemented-- C++ Builder Delphi Taiwan G+ 社群 http://bit.ly/cbtaiwan |
pwipwi
版主 發表:68 回覆:629 積分:349 註冊:2004-04-08 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |