C++ 对于在c+中的发布版本(visual studio)中无限运行的循环+;

C++ 对于在c+中的发布版本(visual studio)中无限运行的循环+;,c++,visual-c++,C++,Visual C++,我的一个项目中有一个for循环。它在发布版本中无限运行,但在调试版本中运行良好。我不懂。我应该期待这里有内存损坏吗? 我在循环中有一些函数调用,它们不改变“j” 用于(int j=10;j>=0;j--){ cout您有一个无符号整数,因此它永远不会低于零;当j为零时,步骤j--将带您到可能的最大无符号值。因此for循环永远不会终止。对不起,我的错误。当在有符号整数中使用变量时,问题仍然存在。“int j=10”看起来不是很无符号…@BoBTFish刚才是uint32。OP编辑为intI刚将其更

我的一个项目中有一个for循环。它在发布版本中无限运行,但在调试版本中运行良好。我不懂。我应该期待这里有内存损坏吗? 我在循环中有一些函数调用,它们不改变“j”

用于(int j=10;j>=0;j--){

cout您有一个无符号整数,因此它永远不会低于零;当j为零时,步骤j--将带您到可能的最大无符号值。因此for循环永远不会终止。

对不起,我的错误。当在有符号整数中使用变量时,问题仍然存在。“int j=10”看起来不是很无符号…@BoBTFish刚才是uint32。OP编辑为intI刚将其更改为int。这段代码还可以(我不会这样写,但它是合法的)。附近的某个地方被破坏了。您需要显示周围的代码。(记得先将其精简。)然后我们无法回答。我所能建议的是,使用一个日志文件(或只是cout指令)要一步一步地打印出发生了什么。还要注意,在循环体中调用的某些函数可能包含另一个无限循环。你是否阅读了我的评论?看在上帝的份上,在你的每个cout语句中打印出j的值。我们正在一步一步地前进。你添加了“cout”
for( int j=10 ; j>=0 ; j--){

 cout << j << " : " << (j>=0);
 cout << "Entered for loop" << endl;
 func(j);
 ...
 cout << "Exiting the for loop" << endl;
 }