back to arays
    Tom S 
    h3r3tic at remove.mat.uni.torun.pl
       
    Mon May 15 03:24:39 PDT 2006
    
    
  
Derek Parnell wrote:
> On Mon, 15 May 2006 10:05:22 +0300, Max Samuha wrote:
> 
>> I thought array references are similar to object references like in C#
>> (actually, thay are object references in C#) and that was my mistake:
>>
>> int[] a = new int[20];
>> int[] b = a;
>>
>> a.length = 40; // a is copied and b is not updated to point to a's
>> data;
>>
>> Does it mean that anytime i change an array, i have to manually update
>> all references to it or should i wrap my array in an Array class so
>> that all references to any instance of that array remain valid?
>>
>> If the question have been already discussed please refer me to the
>> right thread. Thanks
> 
> I assume for some valid reason you want this behaviour...
> 
>  int[] a = new int[20];
>  int[] b = a;
>  int[] c = a;
>  a[0] = 17;
>  writefln("%s %s", b[0], c[0]); // Displays 17 17
But... it will display '17 17'.
> The simplest way to do this is  ...
> 
>  int[] a = new int[20];
>  int[]* b = &a;
>  int[]* c = &a;
>  a[0] = 17;
>  writefln("%s %s", b[0], c[0]); // Displays 17 17
Nope, the earlier one :)
As I understand it, he'd like this code:
#    int[] a = new int[20];
#    int[] b = a;
#    b.length = 10;
#    writefln("%s %s", a.length, b.length);
to output '20 20'.
-- 
-----BEGIN GEEK CODE BLOCK-----
Version: 3.1
GCS/M d-pu s+: a-->----- C+++$>++++ UL P+ L+ E--- W++ N++ o? K? w++ !O 
!M V? PS- PE- Y PGP t 5 X? R tv-- b DI- D+ G e>+++ h>++ !r !y
------END GEEK CODE BLOCK------
Tomasz Stachowiak  /+ a.k.a. h3r3tic +/
    
    
More information about the Digitalmars-d-learn
mailing list