全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:884
推到 Plurk!
推到 Facebook!

一個刪除動態產生的元件的問題

答題得分者是:jessechan
khaupe
一般會員


發表:28
回覆:25
積分:15
註冊:2003-06-30

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-08-29 00:26:19 IP:61.231.xxx.xxx 未訂閱
我先宣告了一個陣列如下: TLineSeries *Series[10]; 而物件Series[i]的產生不是用迴圈一次全部產生 而是在Button1按第一次產生Series[1] 按第二次產生Series[2]..... (當然,i==11時會變成i = 0) 我也另一個按鈕(Button2)寫了個刪除的迴圈如下: for(int i = 0 ; i<=9 ; i ){ if(Series[i] != NULL){ delete Series[i]; } } 那現在問題來了 我連按Button1三次--->產生Series[0~2] 按一次Button2 再按Button1三次----->產生Series[3~5] 按一次Button2 然後錯誤訊息就出現了: Project Project1.exe raised exception class EAccessViolation with message'Access violation at address 0124541B. Write of address 33303732'. Process stopped . 請問到底是哪裡出錯呢?
jessechan
版主


發表:109
回覆:394
積分:254
註冊:2002-04-05

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-08-29 01:04:37 IP:61.228.xxx.xxx 未訂閱
原因如下, 在你第一次按了 button1 時, 已經給 Series[i] 一個值了(也就是一個指標), 在你第一次按 button2 不會有問題, 因為其它的 Series[i] 是 NULL, 但在第二次按下時因你之前只有 delete Series[i], 並未將 Series[i] 設回 NULL, 所以自然產生 error.    Jesse Chan
------
Jesse Chan
khaupe
一般會員


發表:28
回覆:25
積分:15
註冊:2003-06-30

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-08-29 01:17:42 IP:61.231.xxx.xxx 未訂閱
引言: 原因如下, 在你第一次按了 button1 時, 已經給 Series 一個值了(也就是一個指標), 在你第一次按 button2 不會有問題, 因為其它的 Series[i] 是 NULL, 但在第二次按下時因你之前只有 delete Series[i], 並未將 Series[i] 設回 NULL, 所以自然產生 error. [i]Jesse Chan
非常感謝, 問題已解決了
系統時間:2024-03-29 12:46:41
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!