[fpc-devel] Array of char

Stefan Glienke sglienke at dsharp.org
Wed Feb 25 18:41:32 CET 2015


Maybe in D7 this works and in Delphi XE7 you also can get away with it when
passing it directly to Writeln but this will throw a nice AV and the end:

program Project1;
const
   Str = 'TEST';
var
   Data: array of Char;
   s: string;
begin
   SetLength(Data, Length(Str));
   Move(Str[1], Data[0], Length(Str)*SizeOf(Char));
   s := string(Data);
end.

I debugged into the code (it's calling UStrAsg) and what it does cannot 
be correct because it
interprets the array of Char directly as string messing around with its 
refcount.

Regards
Stefan

Am 25.02.2015 um 17:02 schrieb thaddy at thaddy.com:
> @ Florian.
>
> You closed the typecast from array of char to string issue.
> Maybe you are right,
> I just can prove that every d2-xe7 adds a #0, so a cast (partially, 
> agreed) works in delphi and not in fpc.
> I suggest you reconsider this. The raw pointer cast should work, which 
> means an array of char should have a hidden terminator as well as a 
> hidden pre.
>
> With all respect,
>
> Thaddy
>
>
>
> _______________________________________________
> fpc-devel maillist  -  fpc-devel at lists.freepascal.org
> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20150225/7419e07b/attachment.html>


More information about the fpc-devel mailing list