Chinaunix首页 | 论坛 | 博客
  • 博客访问: 408058
  • 博文数量: 78
  • 博客积分: 3642
  • 博客等级: 中校
  • 技术积分: 695
  • 用 户 组: 普通用户
  • 注册时间: 2006-10-23 15:33
文章分类

全部博文(78)

文章存档

2007年(53)

2006年(25)

分类: C/C++

2006-11-02 21:36:19

   [原]同事说程序出了问题,段错误.第一反映是数组越界之类的内存访问错误.但是发生错误的地方却在int型数据的比较上.作出这个判断的依据是在比较前的打印语句有输出,而比较语句本应该输出数据的,却没有看到就段错误了. 弄了一会没有结果,把比较语句内的打印语句加了'\n'后执行程序,在比较语句内的打印语句输出后,发生段错误.

   原来段错误在后面的语句.之所以加了'\n'后程序的表现不一样了,是因为printf语句处理的时候是会缓冲的,如果没有加'\n'的话,在执行输出语句后不会马上显示到屏幕上,而之后发生段错误程序就退出了,所以我们误以为printf语句没有执行.

   所以在用打印程序运行中的变量的方式调试程序时,最好用没有缓冲的打印语句.

阅读(2183) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~