我想使用字节数组分配空间(动态大小),并获得指向“spacearea”的指针,然后在以后不再需要时释放它。
我知道VirtualAlloc,VirutalAllocEx和LocalAlloc。
哪一个最好,之后如何释放内存?
感谢您的帮助。
最佳答案
我认为使用winapi代替本地Pascal函数不是一个好主意。
您可以简单地将字节数组定义为
var yourarray: array of byte;
那么它可以由
setlength(yourarray, yoursize);
并被释放
setlength(yourarray, 0);
这样的数组是引用计数的,您可以访问单个字节作为
yourarray[byteid]
或者,如果您确实想要指针,则可以使用:
var p: pointer;
GetMem(p, yoursize);
FreeMem(p);