[fpc-pascal] Memory leak
Jonas Maebe
jonas.maebe at elis.ugent.be
Sun Dec 18 14:25:07 CET 2011
On 18 Dec 2011, at 14:04, dhkblaszyk at zeelandnet.nl wrote:
> mytest^.name := Format('%s.%.3d', ['name', 1]);
>
> This assigns
> 'name.001' to the pointer variable but causes a memleak. If I assign the
> same value as string constant no memleak occurs, so it must be something
> related to format.
It's related to
a) the type of "name" (I assume it's an ansistring or unicodestring)
b) how you free the memory to which mytest points
If you use freemem or reallocmem, then you will get a memory leak because freemem/reallocmem do not finalize the memory before freeing it. You have to manually call finalize() on the records inside that memory block prior to freeing them via freemem/reallocmem. dispose on the other hand will finalize the freed memory automatically.
Jonas
More information about the fpc-pascal
mailing list