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