【发布时间】:2014-06-13 12:59:44
【问题描述】:
问题
在过去的一年里,我一直在使用 C++ 和 Allegro 5.0.10 在 Microsoft Visual Studio 2010 Professional 中编写游戏,并且在发布之前已经没有太多工作要做。但是,当我现在构建游戏时,我遇到了随机错误。 随机错误,我的意思是有时游戏运行没有问题,有时它开始做一些我根本没有写入代码的事情。这方面的示例包括在 (0,0) 处显示整个精灵表;不移动角色,而是改变他/她面对的方向;将角色向一个方向移动,但显示他们以相反的方式行走(想想月球漫步)。我相当肯定这实际上不是编码错误,因为这些是我在代码中编写的一些初始函数,并且它们一直有效。
问题
随机错误(程序/IDE 未检测到)可能是什么原因,例如我上面在编码中提到的(C++ 或 Allegro 本地)? p>
【问题讨论】:
-
大约一百万件事情。我们需要非常了解您的程序的工作方式才能开始推测。我认为这个问题在这里太宽泛了。但可能是某种形式的未定义行为。
-
添加到 BoBTFish 的评论中,您可能错误地认为问题不在于您的代码。 “他们一直在工作” 并不是对正确性的有力测试。尤其是面对Undefined Behavior。
-
我之前没有听说过Undefined Behavior,但是从@DrewDormann 发布的wiki页面中,听起来它与分配变量有关,然后无法定义它。我确实回去检查了代码中的示例,但我找不到任何示例。我是否理解错误的 Undefined Behavior 是什么?