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