On Wed, 22 Oct 2014, Martin Uecker wrote:
>
>
> Sorry for bringing this up again, but this could work:
>
> void foo(int x, int (*s)[x])
> {
> (*s)[x] = 1; // <- undefined behaviour
Yes, I believe that's undefined (even if the array is part of a larger
object, as the same principle as "An array subscript is out of range, even
if an object is apparently accessible with the given subscript (as in the
lvalue expression a[1][7] given the declaration int a[4][5]) (6.5.6)."
(Annex J) applies).
--
Joseph S. Myers
[email protected]