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),但只是不知道会访问到哪罢了