enter link description here 请检查此代码,如果我同时使用push和pop,则表示超出输出限制错误。 我创建了一个类Stack,在down函数中我创建了一个指向堆栈的指针。
答案 0 :(得分:0)
您尚未在代码中的下一行初始化指针。
void Stack::down()
{
Stack *s1;
//.....
}
此语句执行的行为未定义。
在Windows上,此语句执行会引发运行时异常。但在其他平台上,该程序可能表现不同。网站上的IDE可能在不同的平台上运行该程序,并且由于top成员变量中的值不正确,该平台可能无限地运行某些代码。因此输出缓冲区超出了容量。
在我看来,下面的循环无限运行。
while(!(s1->isEmpty()))
{
int temp=s1->pop();
push(temp);
printf("\n%d\t",temp);
}
初始化此指针,程序运行正常。