摘要: 在c程序中,经常会遇到段错误(segment error)和总线错误(bus error),这两种问题出现的原因可能如下段错误:对一个NULL指针解引用。访问程序进程以外的内存空间。 实际上,第一个原因可以规约到第二个原因,在一个c程序的虚拟内存空间中,从低地址到高地址一次是代码区,堆区(向上增长),栈区(向下增长),最上是常量区,其中NULL指针的位置正好是虚拟内存中地址为0的位置,而这个位置是不属于以上4个区域的,同理一些比较低的地址也不属于这四个区,所以造成段错误的原因是访问了程序虚拟内存空间4个区以外的地址,在平时的开发中,最大的可能还是对NULL进行了解引用。总线错误对一个错误的起. 阅读全文
posted @ 2013-12-25 17:57 xpray 阅读(4519) 评论(0) 推荐(0) 编辑