delphi 精要-讀書筆記(記憶體配置釋放)

來源:互聯網
上載者:User

1.記憶體分為三個地區:全域變數區,棧區,堆區

全域變數區:專門存放全域變數

棧區:分配在棧上的變數可被棧管理器自動釋放

堆區:堆上的變數記憶體必須人工去釋放

2.指標類變數

指標類的變數在聲明為全域變數時被初始化為空白值,在聲明為局部變數時則初始化為一個隨機數,對於指標類型一般

要使用一些代碼來完成記憶體配置

3.動態分配記憶體的函數和過程

procedure GetMem(Var P: Pointer; Size: Integer); 

分配大小為Size位元組的記憶體塊,並讓P指向它

procedure AllocMem(Size: Cardinal):Pointer;

分配大小為Size位元組的記憶體塊並始初化為零,並返回地址指標

procedure ReallocMem(Var P: Pointer; Size: Integer);

在途中更改先前用GetMem或者AllocMem分配的記憶體大小

procedure FreeMem(Var P: Pointer);

使用GetMem和AllocMem分配的記憶體都應該用FreeMem釋放

Procedure New(Var P: Pointer);

用New分配的記憶體大小由參數P的資料類型確定,因此,不要使用它給無類型指標變數分配記憶體.

Procedure Dispose(Var P: Pointer);

釋放該記憶體塊使用dispose

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.