导致分段错误的行之前的Printf()不会执行

前端之家收集整理的这篇文章主要介绍了导致分段错误的行之前的Printf()不会执行前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
发生分段错误时,printf()在它不执行之前.
main()
{
 printf( "something" );
 statement;  //this statement causes a segmentation fault
}

在上面的情况中,为什么printf()不执行?

所以我需要在这种情况下使用valgrind(在错误语句之前打印所有printf()).

解决方法

在程序崩溃之前输出流可能无法输出,但您可以通过使用fflush()刷新输出字节来输出它们.

我通常会这样做:

if (trace) { fflush(stdout); }

猜你在找的C&C++相关文章