segmentation fault是什么意思

2020-10-14 16:26:50 评论 10,257
摘要

segmentation fault中文翻译过来是内存区段错误的意思,其错误的来源多种多样。

segmentation fault是什么意思

数组太大导致栈不够

当数组太大的时候可以更好的分配,进而解决栈不够用的情况。直接代码举例:int N=atoi(argv{1}),I,j:double eigvl{N},若是使用数组,则全部内存的空间都可以分配在stack上,一般stack不会太大。具体解决方法可以用malloc分配到heap上。

复杂的函数调用导致栈不够

该问题在c++中是很少见的问题,具体的现象是在程序调用比较复杂,而stack上变量比较大的时候,一些本来没有问题的函数内报错。出现此问题解决的方法很唯一,那便是要调整stack的大小,让stack的大小满足空间使用。

malloc的参数溢出

segmentation fault也可能是编程人员将malloc的大小的计算放在了括号中,该习惯是一种很不好的习惯,而很多编程人员都存在该习惯,应该注意尽早的改掉。特别是在大小可能很大的时候更容易导致参数溢出,此时就应该马上的把算式写在括号外面,排出报错。

空指针访问

如果说指针为空null,那么对于空指针的读写操作会导致报错。如果说c语言的指针指向了非法区域,然后对其写入,那必将会带来不可预知的后果,最严重的就是程序崩溃,此时也是segmentation fault报错。

当然了,上面所介绍的segmentation fault错误来源并不全面,建议大家到有关专业的论坛或者网站去查找资料,同时在实践中不断地总结经验教训,提高编程水平。

相关文章

什么样的英剧适合练习口语呢? 英语问答

什么样的英剧适合练习口语呢?

不是所有英剧都适合练口语!不要再跟猜盲盒一样盲选了,雅思口语7分老学姐给你们推荐几部提升英语口语必看英剧~ 在大家的固有印象里,英剧相对于美剧来说往往都是偏正式、严谨、有些许冷幽默的。所以,用英剧学习...
英语外教课值不值得上? 试听给你答案 英语问答

英语外教课值不值得上? 试听给你答案

英语外教课值不值得上,对于这一问题,答案是毋庸置疑的,外教课程是一定值得上的,有相关的数据报告也显示,上过外教课程的孩子在英语听说以及应用方面大部分都得到了或多或少的提升,所以如果有条件,建议家长给孩...
经验告诉你,英语口语宜早不宜迟 英语问答

经验告诉你,英语口语宜早不宜迟

自从当了妈,孩子的事就是家里的头等大事! 我发现很多妈妈都会有这种想法:看到别人家孩子学舞蹈了,咱家娃也要学,看到别人家孩子学钢琴了,咱家宝宝也不能落后,看到别人家孩子幼儿园就开始学英语了,家长心里又...