数组越界 ·
out-of-bounds
a[5] 合法下标只有 0~4 —— 访问 a[5] 会悄悄读写到隔壁的内存
内存:一块连续空间,每个 int 占 4 字节
int a[5];
7
a[0]
1000
3
a[1]
1004
9
a[2]
1008
5
a[3]
1012
2
a[4]
1016
数组 a 的地盘:合法下标 0 ~ 4
42
int x
1020
别的变量,恰好挨着 a
a[2] = 9
1000 + 2×4 = 1008 ✓
a[5] ← 越界!
1000 + 5×4 = 1020
▶ 重播