我有这个功能:
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 + 0xffffffffe = 0x1ffd9cda2?0x1ffd9cda2 有效吗?
它在 64 位 Linux 上运行。