美文网首页
常见的死法

常见的死法

作者: 小幸运Q | 来源:发表于2018-06-25 11:55 被阅读8次

溢出(含段错误):

堆栈的大小为8192KB,在c/c++程序的函数中申请了过大的空间,或者递归层次太多,导致堆栈溢出了。
PS: 试试a[100]后面加个0

段错误是非常喜闻乐见的一种报错方式,因为段错误锁定问题代码区域的方式较为简单:首先对可疑的代码段进行注释掉,然后提交到OJ上看是否会发生段错误,如果确实是自己注释掉的这段代码发生了段错误,那么对应的OJ判题结果就会变为答案错误,说明注释掉的代码正是引起越界溢出的原因所在。

可能原因:
  1. 多层for循环中内层循环明明应该写j或者k,却写成了外层循环的变量i,导致数组访问i下标的时候发生了越界
  2. 数组开小了导致指针指向了未开辟的数组区域,出现了越界访问
  3. 大数组一定要开全局,而不是写在main函数里面,否则容易发生段错误
  4. 递归的出口写的有问题,递归层数太多导致了堆栈溢出,发生段错误
  5. int + int、int * int的过程中都有可能出现结果超过了int的值而产生溢出的情况,这样就会使一些数据较大的测试用例因为溢出变成了别的数字而得到答案错误(一般会变成负数)

Runtime Error:

你的程序在运行的时候出错了,异常终止了,导致这种状态的情况有肯多,一般都是一些非法操作,比如文件操作,Java中的网络操作等等。Java中Runtime Error的更详细的叙述见下。另外C/C++中越界访问函数中定义的数组也会导致Runtime Error。

可能的原因:
  1. 明明i从s.length()-1开始向前遍历,结果i误写成了i++导致了无限循环
  2. while循环的边界判断有问题,使得无限循环
  3. 对数据进行排序的过程中,有很多数据是无效数据,如果对所有数据都排序可能会引起超时,所以可以考虑在放入数组之前就做一些条件判断剔除无用数据,然后再对数组进行排序
  4. ** 使用了v.size()-1等方式,如果v的size本身就是0,因为v.size()返回值是无符号整数,无符号整数的0-1得到的是无符号整数的最大值18446744073709551615而非-1,这可能会让int i循环时超时。

非逻辑问题:

1.空行问题?

2.大小写问题?

3.空格问题?

4.读题问题?

5.能用printf不用,用cout然后超时。

6.做乘法运算的时候会不会溢出?需不需要先 % / ÷ 一下如何接着计算?

  1. 题目数据需要过滤,但是你没过滤。

  2. 题目数据量很大,没有使用二分查找?

相关文章

  • 常见的死法

    溢出(含段错误): 堆栈的大小为8192KB,在c/c++程序的函数中申请了过大的空间,或者递归层次太多,导致堆栈...

  • 智小宝浅谈如何做好社群运营?——社群定位

    我们先来回顾一下上期,智小宝分享了社群运营和营销的目的,以及常见的五种社群死法,针对社群的五种死法,智小宝提出了六...

  • 智小宝浅谈如何做好社群运营?(下)

    我们先来回顾一下上期,智小宝分享了社群运营和营销的目的,以及常见的五种社群死法,针对社群的五种死法,智小宝提出了六...

  • 罪是一生需要去对付的

    十字架的道显明神的义 在神的公义之下: 罪的法(让我们死) 律法的法(也是让我们死) 以法攻法:胜过罪和死的法是 ...

  • 死法

    如果能选择,那选择怎么去死是不是也得是一个难题呢?

  • 死法

    妈的原名太长以后就叫死法,也不要序号了,脑子迷糊记不住。 今年浑浑噩噩的过了三十几天假期,牛轧糖做了一大堆却没有脑...

  • 死法

    如果有一天不得不离开 愿大家没有怀念 只说 看那个背影我们快跟上前 如果有一天不得不说再见 那就再也不用见 只看 ...

  • 死法

    每日凌晨近天亮之际进门 每夜搂着猫死盯着天花板 伴过老到不能再老的老人 听过新生不到三日的啼哭 我日复一日的在打量...

  • 死法

    她考虑过自己的种种死法,比如当年压根就没生下来。 或者,因年幼时的体弱多病而早夭。 再者,死在上学必...

  • 死法

    在未发明刨腹产之前,生的法子大概只有通过产道一种吧?相比生,死亡可是千奇百怪、异彩纷呈。前几天,一位朋友发了一段搞...

网友评论

      本文标题:常见的死法

      本文链接:https://www.haomeiwen.com/subject/mapheftx.html