靜態陣列的記憶体問題? |
缺席
|
adonis
高階會員 發表:140 回覆:258 積分:159 註冊:2002-04-15 發送簡訊給我 |
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
靜態的陣列, 於其 scope 結束後便會釋放的. 另外補充一下 Justmade 兄的 New Procedure 和 GetMem Proceudre 的釋放分別為 Dispose 及 FreeMem, 相關的範例程式如下:
type PListEntry = ^TListEntry; TListEntry = record Next: PListEntry; Text: string; Count: Integer; end; var P: PListEntry; begin ... New(P); P^.Next := List; P^.Text := 'Hello world'; P^.Count := 1; ... Dispose(P); end; // // var F: file; Size: Integer; Buffer: PChar; begin AssignFile(F, 'test.txt'); Reset(F, 1); try Size := FileSize(F); GetMem(Buffer, Size); try BlockRead(F, Buffer^, Size); ProcessFile(Buffer, Size); finally FreeMem(Buffer); end; finally CloseFile(F); end; end; |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |