Address of an array
    David via Digitalmars-d-learn 
    digitalmars-d-learn at puremagic.com
       
    Thu Oct 27 09:16:32 PDT 2016
    
    
  
On Thursday, 27 October 2016 at 16:13:34 UTC, David wrote:
> Hi
>
> The pointer (.ptr) of an array is the address of the first 
> array element. But what exactly is the address of the array? 
> And how is it used?
>
>   auto myArray = [5, 10, 15, 20, 25, 30, 35];
>   writeln("myArray.ptr: ", myArray.ptr); // myArray.ptr: 
> 7FFA95F29000
>   writeln("&myArray[0]: ", &myArray[0]); // &myArray[0]: 
> 7FFA95F29000
>   writeln("&myArray: ", &myArray); // &myArray: 7FFE4B576B10
>   writeln("*&myArray: ", *&myArray); // *&myArray: [5, 10, 15, 
> 20, 25, 30, 35]
Sorry that went to quickly ;-)
I observe for example that the even if the pointer is moved to 
another address the address of the (dynamic) array stays constant:
   auto shrink = myArray[0 .. $-1];
   writeln("shrink.ptr: ", shrink.ptr);
   writeln("&shrink: ", &shrink);
Note: myArray and shrink have the same ptr but a different address
   shrink ~= 100;
   writeln("shrink.ptr: ", shrink.ptr);
   writeln("&shrink: ", &shrink);
Note: After appending, shrink changes its ptr but its address 
stays the same.
Thanks for your help in advance.
    
    
More information about the Digitalmars-d-learn
mailing list