segmentation fault是什么意思

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

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错误来源并不全面,建议大家到有关专业的论坛或者网站去查找资料,同时在实践中不断地总结经验教训,提高编程水平。

相关文章

i has 还是have 英语问答

i has 还是have

i has 还是have:have和has的用法是靠主语人称来决定的,不是时态。过去完成用had done,现在完成用 have done ,将来完成用will have done...
摘要一般写多少字合适 英语问答

摘要一般写多少字合适

摘要一般写多少字合适: 对于本科论文或大专论文而言,摘要写200到300字就可以了。对于硕论而言,摘要写400到500字就可以了。顺便说下,论文摘要是对论文正文内容的精准提炼,作用...