c ++在递增unsigned long int时崩溃

mot*_*tor 0 c++ crash variables integer

这是WTF城市.

几千个循环后,下面的程序崩溃了.

unsigned long int nTurn = 1;
bool quit = false;

int main(){
    while(!quit){
        doTurn();
        ++nTurn;
    }
}
Run Code Online (Sandbox Code Playgroud)

当然,这简化了我的游戏,但是nTurn目前无处可用,但它的增加,当我注释掉++ nTurn行时,程序将永远可靠地循环.不应该碰到数百万吗?

WTF,stackoverflow?

Ben*_*igt 6

你的问题在别处.

程序的其他部分是从最终指向的野指针读取nTurn,当此循环更改值时,其他代码的行为不同.或者存在竞争条件,并且增量使得这个循环只需要更长的时间,因此竞争对手不会造成麻烦.在其他地方你可能会遇到无数的错误.

你能在valgrind下运行你的程序吗?它找不到一些错误,但会有很多错误.