V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
loversInJapan
V2EX  ›  问与答

同一个环境下跑的 c++代码,在不同的时间段跑出来的结果居然不同? 为什么呢?求高手解答

  •  
  •   loversInJapan · 2015-07-03 17:17:40 +08:00 · 2279 次点击
    这是一个创建于 3462 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在VMware虚拟机,Ubuntu系统,编译器是clang++。自己写的c++代码,昨晚跑出来的结果是错误的,今天在没有做出任何修改的情况下再跑一遍,既然正确了。 这是怎么回事呢? 难到计算机跟人一样也会因为“累”而犯错误吗?

    11 条回复    2015-07-03 18:06:50 +08:00
    LU35
        1
    LU35  
       2015-07-03 17:19:18 +08:00
    和浮点计算相关?
    loversInJapan
        2
    loversInJapan  
    OP
       2015-07-03 17:19:54 +08:00
    @LU35 跟线程有关的。
    visonme
        3
    visonme  
       2015-07-03 17:22:19 +08:00
    在虚拟机和真机中跑出来的数据本身可能存在偏差的,我以前做图像处理时候感觉最明显了,不过具体还是要看你是做的什么运算
    acros
        4
    acros  
       2015-07-03 17:23:14 +08:00
    内存泄漏、多线程错误····
    loversInJapan
        5
    loversInJapan  
    OP
       2015-07-03 17:27:47 +08:00
    @visonme 基本上没做什么运算,搞不懂的是同一个程序,同一个环境为什么会出现这种错误,难到跟系统的稳定相关??
    Septembers
        6
    Septembers  
       2015-07-03 17:28:34 +08:00
    @loversInJapan 没有重新编译?
    loversInJapan
        7
    loversInJapan  
    OP
       2015-07-03 17:30:36 +08:00
    @acros 用的是智能指针,多线程错误的话,今天早上就不能跑出来了吧。。
    loversInJapan
        8
    loversInJapan  
    OP
       2015-07-03 17:32:13 +08:00
    @Septembers 今天再跑的时候没有,昨晚重新编译了好多次
    ilotuo
        9
    ilotuo  
       2015-07-03 17:39:49 +08:00 via Android
    最有可能程序哪个地方指针乱了
    zcbenz
        10
    zcbenz  
       2015-07-03 17:40:31 +08:00
    某个变量没初始化,或者race condition。
    aisk
        11
    aisk  
       2015-07-03 18:06:50 +08:00
    这种情况很大原因是某个变量没初始化,然后之前那个地方刚好有其他数据,导致运行出错,今天刚好没数据,运行结果没问题。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1141 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 18:31 · PVG 02:31 · LAX 10:31 · JFK 13:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.