亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

貌似溢出了 ,請問如何解決?

貌似溢出了 ,請問如何解決?

阿晨1998 2022-08-04 11:11:06
下面是代碼子函數visit中貌似有錯編譯時能通過但運行時會出錯,要我調試但我找不出到底是什么錯誤#include <stdio.h>typedef struct node{int date;struct node *next;}lstack;void init(lstack *s){s = (lstack *)malloc(sizeof(lstack));s->next = NULL;}int push(lstack *s,int e){lstack *p;p = (lstack *)malloc(sizeof(lstack));p->date = e;p->next = s->next;s->next = p;return 1;}int pop(lstack *s){lstack *p;int e;if(s->next == NULL){printf("棧已空!");return 0;}p = s->next;e = p->date;s->next = p->next;printf("出戰成功!\n");free(p);return 1;}int get(lstack *s){int e;if(s->next == NULL){printf("棧已空!");return 0;}e = s->next->date;return e;}void visit(lstack *s){lstack *p = s->next;while(p != NULL){printf("%d\n",p->date);p = p->next;}}int main(){int e = 0;lstack s;init(&s);push(&s,1);push(&s,2);push(&s,3);push(&s,4);e = get(&s);printf("棧頂元素為:%d\n",e);pop(&s);e = get(&s);printf("棧頂元素為:%d\n",e);visit(&s);}
查看完整描述

2 回答

?
蝴蝶不菲

TA貢獻1810條經驗 獲得超4個贊

#include <stdio.h>
#include <stdlib.h>
typedef struct node
{
int date;
struct node *next;
}lstack;

void init(lstack *s)
{
s->date = 0;
s->next = NULL;
}

int push(lstack *s,int e)
{
lstack *p;
p = (lstack *)malloc(sizeof(lstack));
p->date = e;
p->next = s->next;
s->next = p;
return 1;
}

int pop(lstack *s)
{
lstack *p;
int e;
if(s->next == NULL)
{
printf("棧已空!");
return 0;
}
p = s->next;
e = p->date;
s->next = p->next;
printf("出戰成功!\n");
free(p);
return 1;
}

int get(lstack *s)
{
int e;
if(s->next == NULL)
{
printf("棧已空!");
return 0;
}
e = s->next->date;
return e;
}

void visit(lstack *s)
{
lstack *p = s->next;
while(p != NULL)
{
printf("%d\n",p->date);
p = p->next;
}
}

int main()
{
int e = 0;
lstack s;
init(&s);
push(&s,1);
push(&s,2);
push(&s,3);
push(&s,4);
e = get(&s);
printf("棧頂元素為:%d\n",e);
pop(&s);
e = get(&s);
printf("棧頂元素為:%d\n",e);
visit(&s);
}


查看完整回答
反對 回復 2022-08-08
?
MM們

TA貢獻1886條經驗 獲得超2個贊

不用init()

lstack s;
init(&s);
兩句換成
lstack s = {0,NULL};
就沒問題
調試知
init()函數返回后
結構體中s.next不為空
導致visit()溢出


查看完整回答
反對 回復 2022-08-08
  • 2 回答
  • 0 關注
  • 141 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號