Bounds checks.

Doug Gwyn gwyn at smoke.BRL.MIL
Thu Dec 14 18:28:48 AEST 1989


In article <465 at cpsolv.UUCP> rhg at cpsolv.uucp (Richard H. Gumpertz) writes:
>In article <1989Dec11.181631.3864 at jarvis.csri.toronto.edu> norvell at csri.toronto.edu (Theo Norvell) writes:
>>int A[N];
>>&A[N] /* Undefined! */
>I think some special language might be required in 3.3.6 to allow &*
>without undefined results, since this is probably what the committee
>desired anyway.  It would be silly to allow A+N but not &A[N]!

I seem to vaguely recall discussion of this point in some X3J11 meeting,
and it is not clear to me whether or not &A[N] being undefined was
intended or not.  This is another case where an official query should
be sent to X3.

For people who didn't follow the argument, &A[N] is equivalent to &(*(A+(N)))
but *(A+(N)) is a semantic violation.  (A+(N)) is okay, but applying * to
it is not okay.

If this reminds you of the sizeof(((foo*)0)->bar) argument, well...



More information about the Comp.std.c mailing list