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

關於 delete 的bug

尚未結案
cliffpen
一般會員


發表:35
回覆:18
積分:15
註冊:2005-05-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-08-12 15:22:31 IP:220.130.xxx.xxx 未訂閱
請問各位大大一個bug的問題 我在一執行緒中的開頭 new 了一個二維的陣列  
 
        int** edgeline=new int*[2];
        for (int i=0;i<2;i++)
        {
            edgeline[i]=new int[Form1->m_ROI.GetWidth()];
        }
        for (int k=0;k<2;k++)
        {
            for (int j=0;j<Form1->m_ROI.GetWidth();j++)
            {
                edgeline[k][j]=0;
            }
        }
然後在執行緒結束時做了delete的動作
 
        for (int i=0;i<2;i++)
        {
            delete [] edgeline[i];
            edgeline[i]=NULL;
        }
        delete [] edgeline;edgeline=NULL;
當成是開始執行時,一切都很正常 可是過了兩三秒,馬上出現下面這個error 請問這個錯誤是什麼意思呢? 發表人 - cliffpen 於 2005/08/12 15:29:48 發表人 - cliffpen 於 2005/08/12 15:37:33
liangnet
中階會員


發表:19
回覆:148
積分:83
註冊:2004-01-03

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-08-12 20:50:44 IP:218.170.xxx.xxx 未訂閱
這問題應該是你的指標指到的位址,是不可存取的! 可能是你的執行緒在存取時超出配置的記憶體範圍吧! 請檢查一下你的執行緒程式!
malanlk
尊榮會員


發表:20
回覆:694
積分:577
註冊:2004-04-19

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-08-12 22:37:17 IP:61.219.xxx.xxx 未訂閱
cliffpen
一般會員


發表:35
回覆:18
積分:15
註冊:2005-05-16

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-08-15 13:11:12 IP:220.130.xxx.xxx 未訂閱
我想我找到原因了 就是指標指到的位址超出了我 new 的範圍 用 new 的時候真的是要細心一點才行阿 多謝兩位大大的協助
系統時間:2024-06-29 4:34:41
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!