On Sun, 01 Feb 2009 13:01:09 +0100, Zorran <zor...@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));


Reply via email to