immutable string literal?
Daniel Keep
daniel.keep.lists at gmail.com
Sun Feb 21 19:06:00 PST 2010
strtr wrote:
> On winXP (D1) I can compile/run this code without a problem.
> Not even a warning.
>
> void main() {
> char[] s= "immutable literal?";
> s[$-1] = '!';
> writefln(s);
> }
> Codepad runs into a segmentation fault.
> http://codepad.org/NQfsRoR5
>
> Why doesn't it result in a compiler error or warning?
> If it did I would have noticed this quirk earlier.
There's no compiler error because D1 doesn't have a const/immutable system.
There's no crash because Windows doesn't write-protect the data segment
which contains the literal.
More information about the Digitalmars-d-learn
mailing list