The more interesting question

deadalnix deadalnix at gmail.com
Tue May 15 15:31:26 PDT 2012


Le 15/05/2012 17:51, Christophe a écrit :
> deadalnix , dans le message (digitalmars.D:167404), a écrit :
>> This looks to me like a bad practice. C string and D string are
>> different beasts, and we have toStringz .
>
> C string and D string are different, but it's not a bad idea to have
> string *literals* that works for both C and D strings, otherwise using
> printf will lead to a bug each time the programmer forget the trailing
> \0.
>

Due to slicing, it is already unsafe to pass a D string to C code. The 
main problem is array casting silently to pointers, making the error 
easy to do.

Fixing the problem for literal isn't going to solve it at all.

The real solution is toStringz


More information about the Digitalmars-d mailing list