crash D1 compiler

Don nospam at nospam.com
Sun Feb 1 10:12:35 PST 2009


Simen Kjaeraas wrote:
> On Sun, 01 Feb 2009 13:01:09 +0100, Zorran <zorran at tut.by> wrote:
> 
>> This code crash D1 compiler (v1.039)
>>
>> ============
>> import std.stdio;
>>
>> void main()
>> {
>>     string ss="sample";
>>     printf("%s", cast(char*)(ss+"\0") );
>> }
>> ===========
> 
> Indeed it does. Now of course, ss + "\0" makes no sense, but the 
> compiler still should not crash.
> 
> To correctly concatenate two strings, use the ~ operator. Also, to 
> convert a D string to a C string (char *), use toStringz, which 
> automagically adds the terminating null. Your program would then look 
> like this:
> 
> void main() {
>     string ss = "sample";
>     printf("%s", toStringz(ss));
> }
> 
> -- 
> Simen
I've added this as bug #2637


More information about the Digitalmars-d-bugs mailing list