1樓:匿名使用者
#include
#include
typedef struct node
lstack;
void init(lstack *s)
int push(lstack *s,int e)int pop(lstack *s)
p = s->next;
e = p->date;
s->next = p->next;
printf("出戰成功!\n");
free(p);
return 1;
} int get(lstack *s)
e = s->next->date;
return e;
} void visit(lstack *s) }int main()
2樓:匿名使用者
預編譯中應該寫上 #include
其實是因為主函式中根本就沒有建立指標s,若在init()函式中建立必須有返回型別為lstack的指標,使的主函式中的s才能建立,即像2樓修改的,當然也可以不用初始化函式,像3樓的回答。因為在呼叫其他函式是都是臨時開闢的內從空間,但傳的是指標,所以編譯時沒錯,但在連線時地址不一致導致了問題,只有主函式中真實的建立了頭指標,才不會導致錯誤。
3樓:匿名使用者
不用init()
把lstack s;
init(&s);
兩句換成
lstack s = ;
就沒問題
除錯知init()函式返回後
結構體中s.next不為空
導致visit()溢位
樓上的牛啊
4樓:匿名使用者
大哥,你仔細分析下你的邏輯…………
5樓:匿名使用者
在vc6下調式通過
#include
#include
#include
typedef struct node
lstack;
lstack* init(lstack *s,int e)int push(lstack *s,int e)int pop(lstack *s)
p = s->next;
e = p->date;
s->next = p->next;
printf("出戰成功!\n");
free(p);
return 1;
} int get(lstack *s)
e = s->next->date;
return e;
} void visit(lstack *s) }void main()
鏈棧如何定義,鏈棧的c 版本定義
include include typedef int elemtype typedef struct linknodelistack 鏈棧型別的定義 初始化棧 銷燬棧 求戰的長度 void stacklength listack s printf 目前此棧的長度為 d n i 判斷棧是否為空棧 v...
C語言用棧編寫括號匹配
記住一座城 define stack size 160 棧空間大小 define flase 0 define true 1 typedef int bool 棧定義 typedef struct stack void initializing stack s 初始化棧為空 void destory...
關於C語言和程式設計,用C語言程式設計和用C 語言程式設計區別大嗎?
一 工欲善其事,必先利其器 這裡介紹幾個學習c語言必備的裝置和書籍 a 開發環境 例如turbo c 2.0,這個曾經佔據了dos時代開發程式的大半個江山。但是現在windows時代,用turbo c有感覺不方面,編輯程式起來很吃力,並且拖放,更沒有函式變數自動感應功能,查詢參考資料也不方便。建議使...