我的程序提示错误 大神看下 谢谢
#include <stdio.h>#include <malloc.h>
#include <stdlib.h>
void init();
void pop(int val);
void push();
typedef struct node
{ int date;
struct node *pnext;
} NODE,*PNODE;
typedef struct stack
{ PNODE ptop;
PNODE pbottom;
} STACK,PSTACK;
STACK st;
//st.ptop=st.pbottom=NULL;
int val;
void main()
{
init();
pop(1);
pop(2);
pop(3);
pop(4);
pop(5);
pop(6);
pop(7);
pop(8);
push();
push();
push();
push();
}
//初始化
void init()
{
PNODE p=(NODE *)malloc(sizeof(NODE));
if(p=NULL)
{printf("内存分配失败\n");
exit(-1);
}
else
st.ptop=st.pbottom=p;
p->pnext=NULL;
}
//进
void pop(int val)
{
PNODE p=(NODE *)malloc(sizeof(NODE));
if(p=NULL)
{printf("内存分配失败\n");
exit(-1);
}
else
p->pnext=NULL;
p->date=val;
p->pnext =st.ptop;
st.ptop=p;
}
//出
void push()
{PNODE p=st.ptop;
st.ptop=p->pnext;
val=p->date;
printf("输出的值是:%d\n",val);
free(p);
}