Simen Kjaeraas wrote:
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
I've added this as bug #2637

Reply via email to