关闭

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

标签: c语言调试错误分配内存
590人阅读 评论(0) 收藏 举报
分类:

【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; 
}
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:487237次
    • 积分:7551
    • 等级:
    • 排名:第2821名
    • 原创:252篇
    • 转载:212篇
    • 译文:7篇
    • 评论:63条
    最新评论