Simen Kjaeraas wrote:
On Sun, 01 Feb 2009 13:01:09 +0100, Zorran <> 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));

I've added this as bug #2637

Reply via email to