[fpc-pascal] PChar -> AnsiString -> PChar = memory leak?
Henry Vermaak
henry.vermaak at gmail.com
Thu Oct 29 14:20:42 CET 2009
2009/10/29 Mattias Gaertner <nc-gaertnma at netcologne.de>:
> On Thu, 29 Oct 2009 15:00:53 +0200
> Graeme Geldenhuys <graemeg.lists at gmail.com> wrote:
>
>> Hi,
>>
>> Do I create a memory leak if I cast a PChar it a AnsiString. Then
>> append text to the AnsiString and then cast it back to the original
>> PChar?
>>
>> eg:
>> var
>> Text: Pchar; <-- global var containing text.
>>
>> procedure AppendText(const AText: string);
>> var
>> s: string;
>> begin
>> s := Text + AText;
>> Text := PChar(s);
>
> Text:=strnew(PChar(s));
Won't this leak? You'll have to initialise text to null, then use
strdispose before strnew if text is not null.
Henry
More information about the fpc-pascal
mailing list