請問 someVar:= nil; 之後,該 someVar 還佔有記憶體空間嗎? |
尚未結案
|
s07452
一般會員 發表:20 回覆:16 積分:7 註冊:2003-11-17 發送簡訊給我 |
|
ha0009
版主 發表:16 回覆:507 積分:639 註冊:2002-03-16 發送簡訊給我 |
|
s07452
一般會員 發表:20 回覆:16 積分:7 註冊:2003-11-17 發送簡訊給我 |
|
s07452
一般會員 發表:20 回覆:16 積分:7 註冊:2003-11-17 發送簡訊給我 |
引言: aArray: array[0..n] of SomeClass; 若是其中一筆想移除掉?是否需要先執行Free? 或是直接指定nil即可?追問一下: 移除後想要作合併的動作(將後面的資料往前移) 這時候還需要作free跟nil嗎?或是直接搬移即可(=原位址捨棄)? 又請問:下面的程式是犯了怎樣的邏輯錯誤? for i:= 1 to Count do begin aArray[Candidate-1]:= aArray[Candidate]; Inc(Candidate); end; |
ha0009
版主 發表:16 回覆:507 積分:639 註冊:2002-03-16 發送簡訊給我 |
|
a6475
高階會員 發表:67 回覆:230 積分:154 註冊:2002-09-15 發送簡訊給我 |
在Delphi裡,像
var TsomeOJ : TObject;
TsomeOJ只是個指標,所以才需要類似
TsomeOJ := TObject.Create;
這樣來使用物件,而不行直接呼叫
TsomeOJ.Create; //錯誤! 所以當把TsomeOJ := nil;
也只是把指標的指向拿掉,實體的物
件還在。 所以不管是用陣列,還是單一的變數,
建立的物件,請記得Free掉。
直接設 xxx := nil;是不行滴^^ ..-----------βλμε------------..
◎Oo月夜 光明 藍更愁oO◎ 藍調月光城v4:http://inping.myweb.hinet.net/ (暫時使用中..) 明日報(藍調.月光):http://mypaper2.ttimes.com.tw/user/a6475
------
月夜 光明 藍更愁 |
jest0024
高階會員 發表:11 回覆:310 積分:224 註冊:2002-11-24 發送簡訊給我 |
引言:建立一個記憶體可用GetMem,用完記得使用FreeMem釋放, 記憶體大小可使用ReAllocMem修改.. 物件的話由Create建立,用完使用Free釋放,這樣才不會佔空間!! CopyMemory(@aArray[Candidate-1],@aArray[Candidate],(Count-Index)*Sizeof(SomeClass)); ReAllocMem(aArray,Count-1*Sizeof(SomeClass));引言: aArray: array[0..n] of SomeClass; 若是其中一筆想移除掉?是否需要先執行Free? 或是直接指定nil即可?追問一下: 移除後想要作合併的動作(將後面的資料往前移) 這時候還需要作free跟nil嗎?或是直接搬移即可(=原位址捨棄)? 又請問:下面的程式是犯了怎樣的邏輯錯誤?for i:= 1 to Count do begin aArray[Candidate-1]:= aArray[Candidate]; Inc(Candidate); end; |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |