Dotcpp  >  编程教程  >  经验与技巧  >  为什么提交会运行错误(RE)?

为什么提交会运行错误(RE)?

点击打开在线编译器,边学边练

如题,本地测试明明没问题,为什么提交会运行错误呢?


通常来说,运行错误是由于运行过程中出现了,如数组越界、野指针、除0等问题。因此本地测试没问题,仅仅是常规数据可以,但提交后,OJ后台的数据测试过程中出现了如上所述的问题。


比如,某字符串相关的问题,说输入一个字符串,要求逆序输出,输入的长度不超过200,可你的代码中数组定义语句如下:

char str[50];

而样例给的数据是:

dotcpp.com

输出:

moc.ppctod

显然你的程序样例测试一点问题没有,完全放的下,可后台的数据很可能会出现长度199甚至200长的“边界值”数据的,你的程序可想而知,一定会放不下而溢出崩溃的,这就是原因所在。


其余除0错误也类似,我们知道0不能作除数,但事实上是,OJ后台一些比较特殊的数据在测试运行时,我们不知道在哪一个环节,某一个值可能被更改,从而莫名其妙的出现了除以0的情况,造成运行错误。这个需要大家自行排查了


以上,希望大家触类旁通


本文固定URL:https://www.dotcpp.com/course/840

Dotcpp在线编译      (登录可减少运行等待时间)