[fpc-pascal] Pchar from constant string
Michael Van Canneyt
michael at freepascal.org
Fri Jun 30 11:11:26 CEST 2023
On Fri, 30 Jun 2023, Hairy Pixels via fpc-pascal wrote:
>
>
>> On Jun 30, 2023, at 9:03 AM, Hairy Pixels <genericptr at gmail.com> wrote:
>>
>> That's why that worked. Hmm with short strings the null terminator could be truncated when copying right? Something to look out for.
>
> this is what I meant about truncation. S is no longer null terminated and now the pchar will fail when passed to C libraries right?
>
> var
> s: String;
> p: Pchar;
> begin
> s := 'hello';
> p := @s;
S will still be null-terminated for ansistrings and shortstrings.
change to
s:=s+s;
p:=@s[1]; // and not @s
writeln(p[Length(s)+1]=#0);
and it will print TRUE.
Michael.
More information about the fpc-pascal
mailing list