問如何釋放變量的記憶體空間呢? |
尚未結案
|
jl
一般會員 發表:17 回覆:34 積分:10 註冊:2004-02-28 發送簡訊給我 |
|
geniustom
版主 發表:100 回覆:303 積分:260 註冊:2003-01-03 發送簡訊給我 |
|
mustapha.wang
資深會員 發表:89 回覆:409 積分:274 註冊:2002-03-13 發送簡訊給我 |
|
geniustom
版主 發表:100 回覆:303 積分:260 註冊:2003-01-03 發送簡訊給我 |
對不起..我說錯了..FREEANDNIL是針對物件.. 如果是靜態變數或靜態陣列..一定要由系統釋放 如 k : byte; r,s : array [0..Len] of SmallInt; i,j : ShortInt; SABM,TM, M : string; 以上都是屬於靜態變數 若寫在函式裡..會隨著函式結束而釋放.. 若寫在全域..則要等到程式結束才能釋放..無法由我們手動釋放 但如果是動態變數或動態陣列..則要手動釋放 如您的 a, b, mm, cp : array of array of smallint; 我寫了一個SAMPLE..您可以打開工作管理員..看看記憶體的變化.. procedure TForm1.Button1Click(Sender: TObject); var i,j:integer; begin setlength(a,9999,9999); for i:=0 to 9998 do for j:=0 to 9998 do a[i][j]:=0; end; procedure TForm1.Button2Click(Sender: TObject); var df:pointer; begin a:=nil; //釋放a陣列的記憶體 end;GOOD LUCK |
jl
一般會員 發表:17 回覆:34 積分:10 註冊:2004-02-28 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |