struct vs. class, int vs. char.

Tomas Lindquist Olsen tomas.l.olsen at gmail.com
Tue Apr 28 11:13:50 PDT 2009


On Tue, Apr 28, 2009 at 6:07 PM, MLT <none at anon.com> wrote:
> 2. char[] vs. int[]
> I think it is strange that
> char[] x = "1234" ;
> x[0] = '4' ;
>
> Produces a run time error, but
> int[] x = [1,2,3,4] ;
> x[0] = 4 ;
> Doesn't. I think that they both should, or both shouldn't - to be consistent (and it would be better if they both didn't). Best would be again, to allow the programmer to specify where the array (or other stuff) should be stored.
>

It pretty much boils down to this (mostly said in other replies)

* string literals are special, they are allocated in a static data
segment, readonly if the platform allows it.

* arrayliterals as non-static expressions are always heap allocated.
even when there's absolute no need for it... (see
http://d.puremagic.com/issues/show_bug.cgi?id=2356 )

-Tomas



More information about the Digitalmars-d mailing list