以下のようなコードがあります。
int foo (unsigned int a)
{
struct tid{
int id;
char abd[8];
};
int ret = 0;
struct tid arr[256];
ret = arr[a];
...
}
foo に渡される a の値は 0xFFFFFFFF です。ここで、スタック外のメモリ ロケーションにアクセスしているので、システムに障害が発生すると思いますが、そうではありません。これがどのように機能するかを調べるために、私が見ることができる方向性を知りたい. 検討中のマシンは、32 ビットのアドレス指定と 256 MB の RAM を備えた MIPS 4K です。gccを使用してx86 PCでコードをクロスコンパイルしています。