C89 の配列またはポインタで、
例えば引数が 1 から 3 の配列を疑似的に表現しようと、

  int vv[3], *v = &vv[-1];
  v[1] = v[2] = v[3] = 0;

または

  int *vv = malloc(3 * sizeof(int)), *v = vv - 1;
   v[1] = v[2] = v[3] = 0;

のように、配列や malloc した範囲の外を指すアドレス
(この場合 vv - 1)を参照することは、
意図の通りに動くことが保証されているのでしょうか?

神田敏広 <candy@kgc.co.jp>