(AllocMem和GetMem)失败

Flz*_*Flz 0 delphi winapi

可以分配的指针数量是多少?我正在开发一个函数,分配各种指针的各种指针.在未计算量(x)之后,AllocMem函数分配覆盖现有指针的指针.有人有提示吗?

function NewObject(ID: Integer): boolean;
Var P: PNewObject;
begin

P:= Allocmem(SizeOf(TNewObject));
P^.ID:= ID;
...
Run Code Online (Sandbox Code Playgroud)

分配的指针只有在程序关闭时才会被释放!

Dav*_*nan 6

没有可分配的最大指针数.如果内存管理器无法找到合适的内存块,则动态内存分配可能会失败.在这种情况下EOutOfMemory提出.

在未计算量(x)之后,AllocMem函数分配覆盖现有指针的指针.

不,事实并非如此.动态内存分配函数永远不会返回已在使用的内存块.

听起来好像你的程序分配但从未解除分配.如果您手头有垃圾收集器,这可能是一种可行的方法,但对您来说情况并非如此.也许你需要考虑在完成内存后取消分配.