数组的负数下标会访问到哪里

学术版

yiming564 @ 2024-11-29 16:29:37

假设全局变量有:

int64_t a, b, f[MaxN], p[MaxN];

我访问 p[-1] 是否会一定访问到 f[MaxN - 1]

换句话说,对于 g++-9,全局变量的内存地址上的布局是否和声明顺序一致?


by bsdsdb @ 2024-11-29 16:47:21

这种东西我觉得要学操作系统的内存管理(


by MarsCheng @ 2024-11-29 17:02:28

开了-O2就是随机,有可能RE、访问到奇奇怪怪数据。甚至有一次,我用倍增的时候写了一个

int fa[N][20]

然后试图修改 fa[u][20]的值,发现修改到了 fa[u][0],很玄学。

我记得不知道在哪听到,c标准说数组的前后一个位置一定有效(不会直接导致RE),但只是不知道会访问到哪罢了


上一页 |