RE出现的几个原因

内存操作异常

  • 数组越界访问‌:访问超出数组硬件支持范围的索引。 ‌
  • 非法内存操作‌:如指针错误或非法地址读写。 ‌

数学运算异常

  • 除零运算‌:整数或浮点数除法时除数为零。 ‌
  • 数值溢出‌:数值超出变量类型最大/最小表示范围。 ‌

逻辑错误

  • 栈溢出‌:递归调用过深或局部变量分配过大。 ‌

数组开得过小,没有覆盖数据范围。常见的有:

  • 无向图存边的数组要开 2 倍。
  • 线段树存节点的数组要开 4 倍。
  • 字典树存节点和结束标记的数组要开到所有字符串的总长。
  • 访问非法下标导致数组或 STL 越界。访问 STL 前记得判断一下它是否为空。
  • 出现除以 0,或对 0取模。
  • 静态数组开得过大,超出空间限制会 RE。
  • 递归层数过多导致递归爆栈,会 RE。
  • 非 void 函数没有返回值。
  • 有文件 IO 的题目没有写 freopen 会 RE。
  • scanf 没有加取地址符 &
  • scanf 前面的格式符与后面的变量数量不符,例如:scanf("%d",&x,&y)scanf("%d%d%d",&x,&y)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值