分类: C/C++
2006-11-02 21:36:19
[原]同事说程序出了问题,段错误.第一反映是数组越界之类的内存访问错误.但是发生错误的地方却在int型数据的比较上.作出这个判断的依据是在比较前的打印语句有输出,而比较语句本应该输出数据的,却没有看到就段错误了. 弄了一会没有结果,把比较语句内的打印语句加了'\n'后执行程序,在比较语句内的打印语句输出后,发生段错误.
原来段错误在后面的语句.之所以加了'\n'后程序的表现不一样了,是因为printf语句处理的时候是会缓冲的,如果没有加'\n'的话,在执行输出语句后不会马上显示到屏幕上,而之后发生段错误程序就退出了,所以我们误以为printf语句没有执行.
所以在用打印程序运行中的变量的方式调试程序时,最好用没有缓冲的打印语句.