24小时热门版块排行榜    

Znn3bq.jpeg
查看: 1114  |  回复: 10
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

wangww2011

木虫 (著名写手)


[交流] 今天碰到的一个bug

今天根据一个同学的要求把以前的一个代码修改了一下就发过去了,后来自己拿这个代码去算另一位同学发来的文件,发现提示内存不足,遂把体系改小,依旧报错,在想是不是今天把代码改坏了,又检查了一下代码,其实今天只是加了一个函数,原来的都没有动,我也就是用if语句判断了下,后来发现问题就出在这里了,到现在还是不知道为什么。我重新写了个文件,并没有发现问题。
CODE:
#include
using namespace std;

class TestBug {
private:
    mutable int x;
public:
    void print() const;
};

void TestBug::print() const {
    x = -1;
    int y=x;
    if (x > 0) {
        cout << "x=" << x << endl;
    }
    if (y > 0) {
        cout << "y=" << y << endl;
    }
}

int main() {
    TestBug tb;
    tb.print();
    return 0;
}

正确的结果是什么都不输出呗(当然上面的代码是没有问题的),但在原代码中bug的结果是
CODE:
x=-1

我只能感叹太复杂的东西真的是会出错的,我重新定义一个本地变量,代码正常了,我很想知道为啥,因为原代码从逻辑上根本没有问题。

[ Last edited by wangww2011 on 2012-5-29 at 02:20 ]
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

» 抢金币啦!回帖就可以得到:

查看全部散金贴

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

nbjnh

木虫 (正式写手)



wangww2011(金币+1): 谢谢参与
我把楼主那段代码编译、运行了一遍,没有任何问题。我用的是VS2008。
3楼2012-05-29 08:19:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 11 个回答

devymex

捐助贵宾 (初入文坛)



wangww2011(金币+1): 谢谢参与
有可能是别的地方把栈写坏了(过界写入)。建议在int y=x;处设断点单步调试,跟踪x变量的值,看看哪里发生了改变。
4楼2012-05-29 11:12:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wangww2011

木虫 (著名写手)


引用回帖:
3楼: Originally posted by nbjnh at 2012-05-29 08:19:26
我把楼主那段代码编译、运行了一遍,没有任何问题。我用的是VS2008。

上面的代码确实没有什么问题的,但是原代码的确会出现问题,而且是第二次运行时出现问题。
5楼2012-05-29 19:55:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wangww2011

木虫 (著名写手)


引用回帖:
4楼: Originally posted by devymex at 2012-05-29 11:12:50
有可能是别的地方把栈写坏了(过界写入)。建议在int y=x;处设断点单步调试,跟踪x变量的值,看看哪里发生了改变。

回头调试下吧,有点小麻烦的是程序必须用tcl载入,回头看看如何调试。
原来tclsh也一样,可以直接载入,呵呵

[ Last edited by wangww2011 on 2012-5-29 at 20:14 ]
6楼2012-05-29 20:00:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 化学工程与技术专业一志愿哈工程 291分B区 国家级大创负责人 有一作论文 +10 Emmy~ 2026-04-09 10/500 2026-04-09 12:12 by 418490947
[考研] 一志愿211 0703化学 346分求调剂 +11 土豆er? 2026-04-09 11/550 2026-04-09 11:37 by yongzhesheng
[考研] 求调剂|086000生物与医药调剂 +6 awwwwwooooo 2026-04-09 6/300 2026-04-09 09:54 by 壹往無前
[考研] 一志愿华南师范大学0702物理学305调剂 +4 念常安 2026-04-07 6/300 2026-04-08 22:53 by bljnqdcc
[考研] 求调剂 +13 柒luck 2026-04-07 13/650 2026-04-08 22:46 by 猪会飞
[考研] 一志愿211,化学310分,本科重点双非,求调剂 +13 努力奋斗112 2026-04-08 13/650 2026-04-08 21:17 by 学员tURuqU
[考研] 一志愿吉大化学327求调剂 +12 王王白石 2026-04-06 13/650 2026-04-08 16:05 by luoyongfeng
[考研] 电子信息346 +4 zuoshaodian 2026-04-08 4/200 2026-04-08 11:54 by zzucheup
[考研] 312求调剂 +4 Say Never 2026-04-04 4/200 2026-04-08 08:41 by barlinike
[考研] 316求调剂 +7 yyx想调剂 2026-04-05 7/350 2026-04-07 14:31 by shdgaomin
[考研] 生物学学硕求调剂:351分一志愿南京师范大学生物学专业 +6 …~、王…~ 2026-04-06 7/350 2026-04-06 18:54 by macy2011
[考研] 085405软件工程301分求调剂,专硕可跨专业,四六级已过 +3 静静想想 2026-04-05 3/150 2026-04-06 15:23 by nepu_uu
[考研] 材料调剂 +13 一样YWY 2026-04-03 14/700 2026-04-05 18:20 by 蓝云思雨
[考研] 085500机械专硕初试288求调剂 +3 GZJguo666- 2026-04-05 3/150 2026-04-05 18:06 by jkddd
[考研] 295求调剂 +8 FZAC123 2026-04-03 8/400 2026-04-05 17:46 by 蓝云思雨
[考研] 材料调剂 +12 一样YWY 2026-04-04 12/600 2026-04-05 08:24 by 544594351
[考研] 考研调剂 +11 小sun要好运 2026-04-04 11/550 2026-04-05 08:02 by qlm5820
[考研] 297求调剂 +11 ljy20040718! 2026-04-03 13/650 2026-04-04 09:23 by 来看流星雨10
[考研] 289-求调剂 +4 这里是_ 2026-04-03 4/200 2026-04-03 14:23 by 1753564080
[考研] 315求调剂 +6 顺理成张 2026-04-03 8/400 2026-04-03 14:04 by 百灵童888
信息提示
请填处理意见