[fpc-pascal] Does ReallocMem(p,0) always set p to nil?

Vincent Snijders vsnijders at quicknet.nl
Mon May 7 09:26:22 CEST 2007

Michael Van Canneyt schreef:
> On Mon, 7 May 2007, Vincent Snijders wrote:
>> Vincent Snijders schreef:
>>> Hi,
>>> Consider this piece of code:
>>> var
>>>   p: pointer;
>>> begin
>>>   p := getmem(100);
>>>   reallocmem(p,0);
>>>   p := nil;
>>> end.
>>> Do I need to do p:=nil, if I want to be sure that p contains nil?
>>> I saw that both system.SysReAllocMem and cmem.CReAllocMem do this, is
>>> size=0, but the docs at
>>> http://lazarus-ccr.sourceforge.net/docs/rtl/system/reallocmem.html don't
>>> mention this, so I don't know if I can be trust that is the case for always
>>> for all memory managers.
>> Tough question apparently. Let's try to word it differently.
>> After reallocmem(p,0) I observed that p is always nil. Is this an
>> implementation detail (subject to change) or part of the specification of
>> reallocmem?
> This is part of the specification.

Thanks. Can you add this to the documentation?


More information about the fpc-pascal mailing list