我想使用字节数组分配空间(动态大小),并获得指向“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);

10-08 06:03