expected array behaviour
    John Reimer 
    terminal.node at gmail.com
       
    Thu Jan  1 16:43:30 PST 2009
    
    
  
Hello Jarrett,
> On Thu, Jan 1, 2009 at 5:55 PM, Mike James <foo at bar.com> wrote:
> 
>> I have a function that uses 2 array strings defined similar to
>> this...
>> 
>> const char[] array1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; char[]  array2 =
>> "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
>> 
>> If I make a change to a char in array1 it also changes the same in
>> array2. But if I define the arrays as follows...
>> 
> You'd get a runtime error if you were using Linux.  For some reason
> string literals are not read-only, or Windows doesn't respect it, or
> something like that.  Modifying either array1 or array2 is technically
> illegal.  So, uh, don't do it.
> 
Yes, that's one advantage to Linux.  String literals aren't read-only on 
Win32.  This is unfortunate because it means that these sort of bugs are 
significantly harder to diagnose on Windows than on Linux.  I remember that 
this was a bug in a early DUI version (now GtkD).  It's was pretty easy to 
spot on Linux because of the runtime error.
-JJR
    
    
More information about the Digitalmars-d-learn
mailing list