Segmentation fault出现和消失的诡异问题

程序运行时出现Segmentation fault,但是在出错代码前加一句简单的printf("here\n");再次编译运行就没出现错误了,这可能是什么原因额。

阅读 3.7k
2 个回答

这种错误一般都是由于访问了无效内存(比如悬空指针或者空指针)造成的,但不看代码,没法确定具体原因。如果你的程序是多线程的,那么看一下是不是由于线程之间没有同步(比如A线程释放了指针,但B线程还在用这个指针)造成的。加printf就好了,有可能是因为改变了多线程之间的执行时序,刚好规避了之前的问题。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进