loversInJapan
V2EX  ›  问与答

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

  •  
  •   loversInJapan · Jul 3, 2015 · 3187 views
    This topic created in 4148 days ago, the information mentioned may be changed or developed.

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

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