数组越界 · 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