Spec#, nullables and more

Walter Bright newshound2 at digitalmars.com
Fri Nov 5 20:27:28 PDT 2010


Michel Fortin wrote:
> On 2010-11-05 20:04:11 -0400, Walter Bright <newshound2 at digitalmars.com> 
> said:
> 
>> Michel Fortin wrote:
>>> On 32-bit OS X, that limit is 4 KB.
>>
>> That's good to know.
> 
> Well, you should already know. I posted this on the Phobos mailing list 
> in August and you posted a reply. :-)

Yeah, well, my brain is full. In order to learn new facts, I must discard an 
equivalent number of existing ones. I've had to discard everything I ever 
learned about chemistry, for example.



>>> And what happens if I dereference a null pointer to a static array of 
>>> 65k elements and I try to read the last one?
>>
>> Array index out of bounds.
> 
> There's nothing out of the array's bounds in this case. Here's what I 
> meant:
> 
>     byte[66000]* arrayPtr = null;
>     byte b = (*arrayPtr)[66000-1];
> 
> I'm in the array's bounds here, the problem is that I'm dereferencing a 
> null pointer but the program will actually only read 65999 bytes 
> further, outside of the 64 KB "safe" zone.
> 
> Should we limit static arrays to 64 KB too?

That's why pointer arithmetic (which is what this is) is disallowed in safe mode.


More information about the Digitalmars-d mailing list