On 2023-06-29 16:22, Mattias Gaertner via fpc-pascal wrote:
On Thu, 29 Jun 2023 21:18:44 +0700
Hairy Pixels via fpc-pascal <fpc-pascal@lists.freepascal.org> wrote:

What is really happening in this snippet? I think it must be
implicitly taking the address of the constant string but is it also
adding the null terminator automatically? The string prints with
writeln so it must be null terminated right?

var
  p: Pchar;
begin
  p := '123';
  writeln(p);

AFAIK the trailing #0 is already stored in the binary.

Indeed - all constant strings are already terminated with #0. Note that this is not guaranteed for all string variables per se.

Tomas
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to