From: Paul Koning
Sent: Monday, August 04, 2008 1:46 PM
>>>>> "Fred" == Fred Cisin
<cisin at xenosoft.com> writes:
>>> address 0 be NULL was not around on the
micros, and putting it
>> at the
Fred> On Mon, 4 Aug 2008, Tony Duell wrote:
>> I wasn't aware that this was a requirement of C, or any other
>> language.
Fred> C actually insists that address 0 is an
invalid address!
Pedantically: not quite. It says that 0 is the token
representing a
null address. It doesn't say that the encoding of such a pointer is
the same as that of the integer 0.
In practice that's probably the case in all
platforms -- certainly all
current ones. I'm not 100% sure about the PDP-10, never mind the
Cyber 6600... both of which have oddball pointers.
It's not that the PDP-10 has "oddball pointers", but rather that
"address" is
not the same data type as "(byte) pointer". I assume that something
similar is
true on the CDC 6x00 family, but I haven't looked at one since
September, 1970,
before I dropped the Compass programming class at UT Austin.
Thanks,
Rich
Rich Alderson
RichA at
vulcan.com
Server Engineer, PDPplanet Project (206)
342-2239
Vulcan, Inc., 505 5th Avenue S, Seattle, WA 98104 (206)
465-2916 cell