一点乐子+警示
  • 板块灌水区
  • 楼主zhangzhihao2卷王
  • 当前回复7
  • 已保存回复8
  • 发布时间2024/10/26 10:47
  • 上次更新2024/10/26 12:32:31
查看原帖
一点乐子+警示
685325
zhangzhihao2卷王楼主2024/10/26 10:47

刚刚在调 P7915,给自己蠢哭了┭┮﹏┭┮

int t,n,arr[5000009],ton[5000009],nxt[5000009],ll,lr,rl,rr;
char ans[5000009],tot=1;

没错就是这么炸裂

这段代码里,tot 定义为了 char,导致其值上下限为 ±128\pm 128。但在本伏笔未消除的情况下,代码居然通过了大样例,难以想象考场上造成的后果。

警钟:当使用多个数据类型时,检查数据类型是否定义正确

同时,rr 变量紧接在 ans 之前,因此在调试时,tot 超上限溢出转负,ans 越界,因此操作 ans 时直接修改了 rr,导致其值出现了及其异常的变化。

警钟:警惕由于数组越界导致的其他数据篡改,在调试时要想到这一点

CSP RP++

2024/10/26 10:47
加载中...