Out-of-bounds pointers
    Larry Jones 
    scjones at sdrc.UUCP
       
    Wed Oct  4 08:01:24 AEST 1989
    
    
  
In article <1009 at mtxinu.UUCP>, ed at mtxinu.COM (Ed Gould) writes:
> Is the following code conformant?  It's clear that it's not legal to
> dereference the pointer in its "illegal" state, but is the p++ line
> guaranteed to return it to a valid value?  What would it (be expected
> to) print?
> 
> 		p = buf;
> 		p--;	/* p contains an illegal value: &buf[-1] */
> 		p++;	/* hopefully, now p == &buf[0] */
Nope.  Once you've decremented p you've entered the twilight zone
of undefined behaviour where your program could dump core, play
the Star Spangled Banner, or continue on.  If it continued, the
increment may or may not set it pointing to buf again.
----
Larry Jones                         UUCP: uunet!sdrc!scjones
SDRC                                      scjones at SDRC.UU.NET
2000 Eastman Dr.                    BIX:  ltl
Milford, OH  45150-2789             AT&T: (513) 576-2070
"I have plenty of good sense.  I just choose to ignore it."
-Calvin
    
    
More information about the Comp.std.c
mailing list