打印结果和调试结果不一样(C语言)

原创 2015年11月20日 13:16:56

【0】README

0.1)本文旨在阐述 个人的debug经历,遇到的各种debug 奇葩问题, 说是奇葩,其实也是自己 不小心或者说是编程习惯不好;


【1】debug和running的运行结果不一致(乍眼一看,你肯定醉了)


1.1)原因:这是因为, 运行是时候,temp内部分配失败,为null, 所以直接返回了,所以swap失败;而在debug的时候, temp内存分配成功, 不为null, 所以swap成功;(至于为什么 运行的时候分配内存失败而debug的时候分配内存成功? 具体的我也不晓得)
这里写图片描述
1.2)这里给我敲了一个警钟: if判断temp是否为null时, 还是添加一条提示语句, 像这样, 也即是吧Error语句的注释去掉即可:
这里写图片描述

1.3)当然,我们也可以吧swap方法修改为:

void swap(ElementType x, ElementType y)
{
 struct Distance temp;

 temp = *x;
 *x = *y;
 *y = temp; 
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

OpenGL的数据类型 与 C中数据类型对应

OpenGL的数据类型(转)   2009-04-14 12:23:30|  分类: 图形 |字号 订阅 为了便于OpenGL在各种平台上移植,OpenGL定义了自己的数...
  • nklinux
  • nklinux
  • 2013年11月24日 13:56
  • 1189

C语言中printf用%d输出float类型数据,或以%f输出int型数据的结果

C语言中printf用%d输出float类型数据,或以%f输出int型数据的结果 IEEE754标准 单精度(32位)/双精度(64位)浮点数解码 float double 有效位数...
  • abcdu1
  • abcdu1
  • 2017年07月15日 12:30
  • 1972

c语言不同变量间的运算结果

系统有默认的转化规则,就是从精度底的转化为精度高的,避免计算时精度的丢失 具体转换规则如下 char --> short --> int ---> unsigned --> long --> u...

(转载)第二十一届国际C语言混乱代码大赛结果公布

摘要:国际C语言混乱代码大赛(IOCCC, The International Obfuscated C Code Contest)是一项著名的国际编程赛事,从1984年开始到2006年,每年举办一次...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:打印结果和调试结果不一样(C语言)
举报原因:
原因补充:

(最多只允许输入30个字)