On Saturday, October 10, 2015 15:20:02 tcak via Digitalmars-d-learn wrote: > [code] > int[] list; > > list = new int[0]; > > std.stdio.writeln("Is Null ? ", (list is null)); > [/code] > > Result is "Is Null? true". > > Is this the correct behaviour? I would expect compiler to point > to an address in the heap, but set the length as 0. So, it > wouldn't return null, but the length would be 0 only.
It basically didn't bother to allocate an array on the heap, because you asked for one with a length of zero. Efficiency-wise, it makes no sense to allocate anything. You wouldn't be doing anything with the memory anyway. The only way that you're going to get an array of length 0 which doesn't have a null ptr is to slice an array down to a length of 0. - Jonathan M Davis