gpt4 book ai didi

c++ - 运行时检查失败 #2 - 变量 's' 周围的堆栈已损坏

转载 作者:行者123 更新时间:2023-11-28 07:35:08 25 4
gpt4 key购买 nike

我遇到过这个问题:Run-Time Check Failure #2 - Stack around the variable 's' was corrupted in visual studio 12。我也在 codeblock 中尝试了这个,但遇到了同样的问题。我也在 ideone.com 中运行我的代码,它显示运行时错误。帮帮我 ?我的代码是:



#include
    
     
#include
#定义最大 50
使用命名空间标准;
类型定义结构
{
长变量[20];
长仓;
}堆;

void init_stack(堆栈*st)
{
长我;
对于(i=0;i st->var[i] = -1;
st->pos = 0;
返回 ;
}

void push(stack *st, long item)
{
如果(st->pos == MAX)
{
printf("堆栈溢出\n");
}
别的
st->var[st->pos+1] = 项目;
st->pos++;
返回 ;
}

无效弹出(堆栈* st)
{
//如果(空(st))
如果(st->pos == 0)
printf("堆栈下溢\n");
别的
st->var[st->pos] = -1;
st->pos--;
返回 ;
}

长顶(堆叠*st)
{
长时间的温度;
temp = st->var[st->pos];

返回温度;
}

bool 空(堆栈* st)
{
如果(st->pos==0)
返回真;
别的
返回假;
}

主函数()
{
堆栈;
长 i, n=9, t;
初始化堆栈(&s);
printf("堆栈推送\n");
对于(i=1;i<=n;i++)
{
推(&s,我);
t = 顶部(&s);
printf("%ld\n", t);
}
printf("堆叠 POP\n");
对于(i=1;i<=n;i++)
{
t = 顶部(&s);
printf("%ld\n", t);
弹出(&s);
}
返回 0;
}

最佳答案

您将 var 声明为包含 20 元素,但您对其迭代了 MAX 次,MAX 被定义作为 50。那可能不是您想要做的。尝试:

long var[MAX];

关于c++ - 运行时检查失败 #2 - 变量 's' 周围的堆栈已损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16891911/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com