deep copy or shallow copy?

Ali Çehreli acehreli at yahoo.com
Fri Dec 9 14:33:38 PST 2011


On 12/09/2011 01:18 PM, Jonathan M Davis wrote:
 > On Friday, December 09, 2011 22:09:15 Timon Gehr wrote:
 >> On 12/09/2011 09:32 PM, Ali Çehreli wrote:
 >>> So it is impossible to do anything shallow with them unless we
 >>> explicitly maintain a pointer to a fixed-length array ourselves.
 >>>
 >>> Ali
 >>
 >> You can always slice it, of course
 >>
 >> int[3] a;
 >> int[] b = a[]; // b now is a dynamic array that aliases a's contents
 >
 > Though, of course, you have to be careful with that, since the static 
array
 > then owns the memory for that dynamic array, and if the static array 
goes out
 > of scope before the dynamic array does, then the dynamic array points to
 > garbage and will result in bugs.
 >
 > - Jonathan M Davis

That's news to me. Don't the static array elements belong to the 
runtime, managed by the garbage collector, and will be kept alive as 
long as the slice is alive?

Ali



More information about the Digitalmars-d-learn mailing list