記憶體亂掉? |
尚未結案
|
newbie
初階會員 發表:81 回覆:45 積分:25 註冊:2002-11-28 發送簡訊給我 |
大家好, 我寫了一個小的測試程式動態產生一些 Form. 首先我在 A.CPP 先這樣宣告 TFormBabu *Test[100]; 然後哩我再程式一開頭先全部 assign 其成為 NULL 如 for(i=0;i<100;) Test[i ]=NULL;
...
Test[i]=new TFormBabu(this);
...
結果哩我發現因為我跨了不同的 Cpp Source 檔參考同一個 Pointer array, 我在 B.CPP 用
extern TFormBabu *Test[100]; 然後哩! 奇怪的事情發生了...
我發現在程式執行到 A.CPP 的部分程式時 Test pointer always NULL..
但是到 B.CPP 時該陣列就變成了一堆亂數....~>_<~ 當然程式碼用到該動態 Form 的就全掛了... 怎會這樣哩....大家有什麼法嗎? 謝謝
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 我寫了一個小的測試程式動態產生一些 Form. 首先我在 A.CPP 先這樣宣告 TFormBabu *Test[100]; 然後哩我再程式一開頭先全部 assign 其成為 NULL 如 for(i=0;i<100;) Test[i ]=NULL; ... Test[i]=new TFormBabu(this); ... 結果哩我發現因為我跨了不同的 Cpp Source 檔參考同一個 Pointer array, 我在 B.CPP 用 extern TFormBabu *Test[100]; 然後哩! 奇怪的事情發生了... 我發現在程式執行到 A.CPP 的部分程式時 Test pointer always NULL.. 但是到 B.CPP 時該陣列就變成了一堆亂數....~>_<~ 當然程式碼用到該動態 Form 的就全掛了... 怎會這樣哩....大家有什麼法嗎? 謝謝 >>< face="Verdana, Arial, Helvetica"> newbie 你好: 是否把你詳細的做法貼上來 這樣解說~~很難真的了解你的問題 --
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
newbie
初階會員 發表:81 回覆:45 積分:25 註冊:2002-11-28 發送簡訊給我 |
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 後來我發現 使我宣告變數時 int A[2][3][4]; 但再另外一個 CPP 檔 用 int A[X][Y][Z]; X,y,z 由 .h 定義掉結果不是 2,3,4 所以兩個 cpp 檔用的 array A 記憶體就亂掉了 >_< >>< face="Verdana, Arial, Helvetica">newbie 你好: 我想~~這件事情是一個很好的經驗 通常在撰寫程式的過程中~~我們都會避免 hard code 什麼是 hard code 呢?? 請參考以下的說明 ( > (> --
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |