ConsoleApplication1.exe中0x00000000处抛出异常:0xC0000005:访问冲突执行位置0x00000000

时间:2017-01-01 10:58:23

标签: visual-c++ visual-studio-2015 sfml

在人们告诉我缩短程序之后我做了它,这里是程序的缩短版本,上面有相同的错误。它只会在片刻之后出现。如果我点击继续,程序工作正常。但是看到运动功能?它确实无法工作。精灵拒绝向任何方向移动。但是如果我在移动中给出一个非常大的浮动值,那么精灵就会从它的位置移开我启动程序,它保持在那个位置,没有进一步的移动。例如,如果我写sprite.move(400.f,400.f),精灵从(0,0)移动到(400,400)并保持在那里。它不再移动了。     这是缩短版代码:

console

我对代码进行了改进,但仍会产生相同的结果和错误。 在使用反汇编程序时,我看到崩溃发生在

00B37AEE cmp esi,esp
在window.display()中。 当我创建一个函数并使用它来显示精灵时,运动会发生,但不知道nada

1 个答案:

答案 0 :(得分:0)

如果W未按 ,则您的逻辑表示您的移动为0/0。 W按下的块的else会覆盖所有先前的设置。移动精灵应该在你display之前发生。

我看不出空指针异常的原因,但这就是调试器的用途。下次发生这种情况时,请调试。

哦,它是int main(),而不是void。我知道编译器容忍这个错误,但它仍然是一个错误和未定义的行为。