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)); } -- Simen