Out-of-bounds pointers
Ed Gould
ed at mtxinu.COM
Tue Oct 3 11:01:38 AEST 1989
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?
void
f() {
char bug[100];
char *p;
p = buf;
p--; /* p contains an illegal value: &buf[-1] */
p++; /* hopefully, now p == &buf[0] */
if(p == buf)
printf("It worked\n");
else
printf("It failed\n");
}
More information about the Comp.std.c
mailing list