0

我尝试查找与设置已设置导致崩溃的变量有关的事情,但我没有发现任何相关主题。

Rextblock 是用户输入的数字。如果 textblock 等于 1,则返回 numbermax 和 2 之间的随机数。

if ( textblock == 1 )
{
   int rand1 = rand() %(numbermax - 2) + 2;
   int textbox = rand1;
}

当我为 textblock 输入 1 时,它会崩溃,我很确定是这段代码导致了它。

using namespace std;

int main(int argc, char *argv[])
{
srand(time(NULL));


int numbermax = 2;



while (while1 < 1)    
{   
cout << "input the number of the text block you wish to use, \n ";
int textblock;
cin >> textblock;

if ( textblock != 0 )
{

}

if ( textblock == 1 )
{
   int rand1 = rand() %(numbermax - 2) + 2;
   int textbox = rand1;
}

if (textblock == 2)
{

}

if (textblock == 2)
{

}


if( textblock == 0 )
{

}   

if ( textblock == 1 )
{
   cout << " \n error, try again \n";     
}
4

2 回答 2

1

我高度怀疑,当您运行它时,numbermax它等于 2。这将导致numbermax - 2等于 0,并且使用 rhs 为 0 的模数会调用除以 0,这是未定义的行为,因此发生崩溃的可能性很大。

您应该确保它不会通过检查if (numbermax != 2).

于 2012-10-13T19:03:33.900 回答
0

可能你的意思是:

textbox = rand1;

您的代码设置了属于 if 块的局部变量,而不是外部文本框变量。我不明白这怎么会使程序崩溃。

于 2012-10-13T18:52:21.117 回答