可以分配的指针数量是多少?我正在开发一个函数,分配各种指针的各种指针。在未计算量(x)之后,AllocMem函数分配覆盖现有指针的指针。有人有提示吗?
function NewObject(ID: Integer): boolean;
Var P: PNewObject;
begin
P:= Allocmem(SizeOf(TNewObject));
P^.ID:= ID;
...
分配的指针只会在程序关闭时释放!
答案 0 :(得分:6)
没有可分配的最大指针数。如果内存管理器无法找到合适的内存块,则动态内存分配可能会失败。在那种情况下,EOutOfMemory
被提出。
在未计算金额(x)之后,AllocMem函数会分配一个覆盖现有指针的指针。
不,事实并非如此。动态内存分配函数永远不会返回已在使用的内存块。
听起来好像你的程序分配但从未解除分配。如果您手头有垃圾收集器,这可能是一种可行的方法,但对您来说情况并非如此。也许你需要考虑在完成内存后取消分配。