Looks like dereferencing a null pointer, but is ok???

Sean Kelly sean at f4.ca
Mon Sep 11 14:12:20 PDT 2006


Georg Wrede wrote:
> In an old message,
> 
>>> I don't think that any extra overhead is involved in slicing. D 
>>> doesn't even check if a pointer is valid.
>>> (That might be a gotcha come to think of it)
>>>
>>> void main()
>>> {
>>>     char[] foo = (cast(char*)null)[0..10];
>>> }
>>
>> Great example! I am now convinced there is nothing
>>> to worry about. Thanks everyone for the help! 
> 
> I'm baffled.
> 
> I would have expected this to cause an error!
> 
> And if really not, what in the world is
> 
>    (cast(char*)null)[0..10]
> 
> supposed to mean, or return???

Who knows what it means--it should cause an access violation at run time.


Sean



More information about the Digitalmars-d-learn mailing list