【问题标题】:Output limit exceeded in c++ classc++ 类中超出输出限制
【发布时间】:2017-12-20 06:10:19
【问题描述】:

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

【问题讨论】:

  • 请将您的代码添加到问题中。将来某个链接可能会失效,从而使这个问题对其他人毫无用处。请阅读how to askMCVE

标签: class data-structures c++14


【解决方案1】:

您还没有在代码的下面一行中初始化指针。

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

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

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

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

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

初始化这个指针,你的程序就可以正常运行了。

【讨论】:

    猜你喜欢
    • 2021-07-03
    • 1970-01-01
    • 2018-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-22
    • 2013-11-12
    • 1970-01-01
    相关资源
    最近更新 更多