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

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;