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

问题描述 投票:0回答:1

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

class data-structures c++14
1个回答
0
投票

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

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

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

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.