在VMware虚拟机,Ubuntu系统,编译器是clang++。自己写的c++代码,昨晚跑出来的结果是错误的,今天在没有做出任何修改的情况下再跑一遍,既然正确了。 这是怎么回事呢? 难到计算机跟人一样也会因为“累”而犯错误吗?
1
LU35 2015-07-03 17:19:18 +08:00
和浮点计算相关?
|
2
loversInJapan OP @LU35 跟线程有关的。
|
3
visonme 2015-07-03 17:22:19 +08:00
在虚拟机和真机中跑出来的数据本身可能存在偏差的,我以前做图像处理时候感觉最明显了,不过具体还是要看你是做的什么运算
|
4
acros 2015-07-03 17:23:14 +08:00
内存泄漏、多线程错误····
|
5
loversInJapan OP @visonme 基本上没做什么运算,搞不懂的是同一个程序,同一个环境为什么会出现这种错误,难到跟系统的稳定相关??
|
6
Septembers 2015-07-03 17:28:34 +08:00
@loversInJapan 没有重新编译?
|
7
loversInJapan OP @acros 用的是智能指针,多线程错误的话,今天早上就不能跑出来了吧。。
|
8
loversInJapan OP @Septembers 今天再跑的时候没有,昨晚重新编译了好多次
|
9
ilotuo 2015-07-03 17:39:49 +08:00 via Android
最有可能程序哪个地方指针乱了
|
10
zcbenz 2015-07-03 17:40:31 +08:00
某个变量没初始化,或者race condition。
|
11
aisk 2015-07-03 18:06:50 +08:00
这种情况很大原因是某个变量没初始化,然后之前那个地方刚好有其他数据,导致运行出错,今天刚好没数据,运行结果没问题。
|