日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

内存管理[4]

發(fā)布時間:2023/12/31 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 内存管理[4] 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
一個使用私有堆的例子:
unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;typeTForm1 = class(TForm)Button1: TButton;procedure Button1Click(Sender: TObject);end;varForm1: TForm1;implementation{$R *.dfm}varMyHeap: THandle; {堆句柄}p: Pointer;procedure TForm1.Button1Click(Sender: TObject); vari,num: Integer;p2: Pointer;str: string; begin{建立堆}MyHeap := HeapCreate(HEAP_ZERO_MEMORY, 1024*1024*2, 0); {建立個 2M 的堆}if Myheap = 0 then Exit; {如果創(chuàng)建失敗則退出}{從堆中分配內(nèi)存}p := HeapAlloc(MyHeap, 0, 7);if p = nil then Exit; {出錯退出}{獲取內(nèi)存塊大小}num := HeapSize(MyHeap, 0, p);{給內(nèi)存塊的每個字節(jié)賦值}p2 := p;for i := 0 to num - 1 dobeginByte(p2^) := i + 65;p2 := Ptr(Integer(p2) + 1);end;{取值}p2 := p;str := '';for i := 0 to num - 1 dobeginstr := str + Chr(Byte(p2^));p2 := Ptr(Integer(p2) + 1);end;{顯示內(nèi)存塊的內(nèi)容與大小}ShowMessageFmt('%s,%d',[str,num]); {ABCDEFG,7}/{擴(kuò)充內(nèi)存, 只此一句不同, 下面都是重復(fù)上面的代碼}p := HeapReAlloc(MyHeap, 0, p, 26);if p = nil then Exit; {出錯退出}{獲取內(nèi)存塊大小}num := HeapSize(MyHeap, 0, p);{給內(nèi)存塊的每個字節(jié)賦值}p2 := p;for i := 0 to num - 1 dobeginByte(p2^) := i + 65;p2 := Ptr(Integer(p2) + 1);end;{取值}p2 := p;str := '';for i := 0 to num - 1 dobeginstr := str + Chr(Byte(p2^));p2 := Ptr(Integer(p2) + 1);end;{顯示內(nèi)存塊的內(nèi)容與大小}ShowMessageFmt('%s,%d',[str,num]); {ABCDEFGHIJKLMNOPQRSTUVWXYZ,26}/{釋放內(nèi)存}HeapFree(MyHeap, 0, p);{銷毀堆}HeapDestroy(MyHeap); end;end.

總結(jié)

以上是生活随笔為你收集整理的内存管理[4]的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。