Empty Array is Null?

Frits van Bommel fvbommel at REMwOVExCAPSs.nl
Wed Mar 19 14:51:00 PDT 2008


BCS wrote:
> Steven Schveighoffer wrote:
>>
>> Now, here is the weird part.  The compiler does some magic with 
>> arrays.  If you are comparing an array with null, it changes the code 
>> to actually just compare the array pointer to null.  So, the the 
>> following code:
>>
> 
> no this is the weird part:
> 
> IIRC this passes.
> 
> char* cp = cast(char*)null;
> char[] ca = ap[0..15];
> assert(ca.ptr == null && ca.length == 15);

It does with DMD, if you s/ap/cp/, but I'm pretty sure what you're doing 
is invoking undefined behavior. Or at least it should be, but I can't 
seem to find any mention of it in the spec...


More information about the Digitalmars-d-learn mailing list