私はこの機能を持っています:
void func(int index, struct foo b[])
{
// ...
a[0][0] = b[index].c[0];
// ...
}
ただし、関数が index で呼び出される場合もあります-2
。
a[0][0] = b[-2].c[0];
-2 は範囲外だと思います。クラッシュすることもありますが、そうでないこともあります。
配列bの先頭アドレスが0xffd9cda4の場合、b[-2]のアドレスは?
0xffd9cda4 + 0xfffffffe = 0x1ffd9cda2? 0x1ffd9cda2 は有効ですか?
Linux 64ビットで実行されています。