大佬们,我这里哪错了,就是每次输出完数据之后就中断了。数据能输出,但是输出完就结束了,本来是可以继续往下做别的数据的,不知道是哪里的问题,

我也想做游戏开发 2019-12-31 11:38:48
int pop(linkstack s,int *x) //出栈// { if(empty(s)) return 0; else { linkstack p=(linkstack)malloc(sizeof(stack)); p=s->top; s->top=p->top; *x=p->data; free(p); } return *x; }
...全文
14 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
源代码大师 2021-05-06
  • 打赏
  • 举报
回复
希望对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10581430.html 希望对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10768339.html
  • 打赏
  • 举报
回复
引用 1 楼 寻开心的回复:
这个出栈的代码: p没有必要分配内存. p = (linstack) malloc(sizeof(stack)) 这句是多余的。
if (s->top == NULL ) return 0;
*x = s->top->data;
p= s->top;
s->top = s->top->top;
free(p);
return *x;

不过这个错误和你的问题没有关系, 退出不会是因为pop这个函数造成的
应该是你的代码控制逻辑上的问题,判断输入是a还是b,然后进行不同函数调用的部分
那我再看看怎么弄一下,谢谢了。
寻开心 2020-01-01
  • 打赏
  • 举报
回复
这个出栈的代码: p没有必要分配内存. p = (linstack) malloc(sizeof(stack)) 这句是多余的。
if (s->top == NULL ) return 0;
*x = s->top->data;
p= s->top;
s->top = s->top->top;
free(p);
return *x;

不过这个错误和你的问题没有关系, 退出不会是因为pop这个函数造成的
应该是你的代码控制逻辑上的问题,判断输入是a还是b,然后进行不同函数调用的部分

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧