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