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
------解决方案--------------------
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;