首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

delphi new怎么申请、分配、以及释放空间

2012-05-15 
delphi new如何申请、分配、以及释放空间 ?VC++中这样写UCHAR * myBuffermyBuffer new UCHAR[2048 * 1536

delphi new如何申请、分配、以及释放空间 ?

VC++中这样写

 UCHAR * myBuffer;


myBuffer = new UCHAR[2048 * 1536 * 3];

memset(myBuffer, 0, 2048 * 1536 * 3);

delete []myBuffer;


请问delphi中该怎样写?


[解决办法]
GetMem,FreeMem
[解决办法]
GetMem,FreeMem....
[解决办法]
zeromemory
[解决办法]
memset对应D的ZeroMemory
[解决办法]

Delphi(Pascal) code
var   myBuffer : PByte;begin  GetMem(myBuffer,2048 * 1536 * 3);  FillChar(myBuffer^,2048 * 1536 * 3,0);  FreeMem(myBuffer,2048 * 1536 * 3);end;
[解决办法]
分配内存有多种方法,对应有释放方法也不同,比如
GetMem FreeMem
AllocMem ReallocMem
GetMemory ReallocMemory FreeMemory
New Dispose
StrNew StrAlloc StrDispose
...

建议用StrAlloc
他实际也是调用了GetMem, 但StrAlloc会在指针前面添加4个管理字节(作用是记录长度),相应的用StrDispose释放
内存操作,最好用try finally end处理,來保证分配的内存得到释放

var myBuffer : PByte;

try
New(myBuffer);
...
finally
Dispose(myBuffer);
end;

热点排行