学习笔记-C语言调试问题--初始化

昨天测试分类代码,原本准确率很高的代码,结果测试的时候却发现没几个分类准确的。

断点调试,遇到一个很诡异的问题,调用函数的时候,在函数体内部加断点与不加断点的分类结果不同。反复确认之后,发现确实存在这种问题。

以为是输入参数的问题,我使用的值传递,也许是这里不小心出现了问题,于是各种修改代码,尝试各种函数返回方式,结果是越来越槽。大半个下午的时间都耗在上面,仍是没有解决问题。

今天早上,重新检查,还是这样的问题。尝试不使用函数调用,将代码段直接放在调用处。发现不管输入数据怎样,分类结果全部一样,并且投票的分布也完全没变化。

终于意识到问题应该是出现在代码里面的计算上,开始全面一步步检查代码。

在生成过程中,有一条提示:有一个变量没有初始化。在昨天的调试中我也看到了,但只是简单了检查了一下第一次使用的地方,是初始化过的,所以就没再管那个warning。现在重审,发现那条提示的变量是另一个地方。

问题终于发现了,是因为我在变量的使用中间,重新 int a了。于是a就成了一个没有初始化的变量,所以出现了“每次运行得到不同的结果”。

总结:

调试中遇到的warning提示一定要仔细查看,不然可能会引起很严重的后果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值