Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!csd4.csd.uwm.edu!lll-winken!uunet!mcsun!ukc!edcastle!aiai!richard From: richard@aiai.ed.ac.uk (Richard Tobin) Newsgroups: comp.lang.c Subject: Re: Referencing NULL pointers Message-ID: <823@skye.ed.ac.uk> Date: 29 Aug 89 16:20:23 GMT References: <32UP02Eg3d=801@amdahl.uts.amdahl.com> <1382@bruce.OZ> <10830@smoke.BRL.MIL> <9838@xanth.cs.odu.edu> Reply-To: richard@aiai.UUCP (Richard Tobin) Organization: AIAI, University of Edinburgh, Scotland Lines: 20 In article <9838@xanth.cs.odu.edu> kremer@cs.odu.edu (Lloyd Kremer) writes: >This is true for integral constant 0, but could you not access memory >location 0 by writing: > p = 0; /* integer variable that happens to be set to zero */ > data = *(int *)p; /* no constant expression in this line */ Probably, but there's nothing to stop a cast doing something strange. This may work better (but of course is still completely unreliable): union {int i; int *p} x; x.i = 0; data = *x.p; -- Richard -- Richard Tobin, JANET: R.Tobin@uk.ac.ed AI Applications Institute, ARPA: R.Tobin%uk.ac.ed@nsfnet-relay.ac.uk Edinburgh University. UUCP: ...!ukc!ed.ac.uk!R.Tobin