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

2015-07-03 17:17:40 +08:00
 loversInJapan

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

2278 次点击
所在节点    问与答
11 条回复
LU35
2015-07-03 17:19:18 +08:00
和浮点计算相关?
loversInJapan
2015-07-03 17:19:54 +08:00
@LU35 跟线程有关的。
visonme
2015-07-03 17:22:19 +08:00
在虚拟机和真机中跑出来的数据本身可能存在偏差的,我以前做图像处理时候感觉最明显了,不过具体还是要看你是做的什么运算
acros
2015-07-03 17:23:14 +08:00
内存泄漏、多线程错误····
loversInJapan
2015-07-03 17:27:47 +08:00
@visonme 基本上没做什么运算,搞不懂的是同一个程序,同一个环境为什么会出现这种错误,难到跟系统的稳定相关??
Septembers
2015-07-03 17:28:34 +08:00
@loversInJapan 没有重新编译?
loversInJapan
2015-07-03 17:30:36 +08:00
@acros 用的是智能指针,多线程错误的话,今天早上就不能跑出来了吧。。
loversInJapan
2015-07-03 17:32:13 +08:00
@Septembers 今天再跑的时候没有,昨晚重新编译了好多次
ilotuo
2015-07-03 17:39:49 +08:00
最有可能程序哪个地方指针乱了
zcbenz
2015-07-03 17:40:31 +08:00
某个变量没初始化,或者race condition。
aisk
2015-07-03 18:06:50 +08:00
这种情况很大原因是某个变量没初始化,然后之前那个地方刚好有其他数据,导致运行出错,今天刚好没数据,运行结果没问题。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/203117

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX