c ++类中超出了输出限制

时间:2017-12-20 06:10:20

标签: class data-structures c++14

enter link description here 请检查此代码,如果我同时使用push和pop,则表示超出输出限制错误。 我创建了一个类Stack,在down函数中我创建了一个指向堆栈的指针。

1 个答案:

答案 0 :(得分:0)

您尚未在代码中的下一行初始化指针。

void Stack::down()
{
    Stack *s1;
    //.....
}

此语句执行的行为未定义。

在Windows上,此语句执行会引发运行时异常。但在其他平台上,该程序可能表现不同。网站上的IDE可能在不同的平台上运行该程序,并且由于top成员变量中的值不正确,该平台可能无限地运行某些代码。因此输出缓冲区超出了容量。

在我看来,下面的循环无限运行。

while(!(s1->isEmpty()))
{
    int temp=s1->pop();
    push(temp);
   printf("\n%d\t",temp);
}

初始化此指针,程序运行正常。