|
我的代码如下:
#include <stdio.h>
#include <malloc.h>
#define DATATYPE2 int
typedef struct snode{
DATATYPE2 data;
struct snode* next;
}LINKSTACK;
void pushstack(LINKSTACK *top,DATATYPE2 x)
{
LINKSTACK *p;
p=malloc(sizeof(LINKSTACK));
p->data=x;
p->next=top;
top=p;
}
DATATYPE2 popstack(LINKSTACK *top)
{
DATATYPE2 v;
LINKSTACK *p;
if(top==NULL)
printf("Underflow\n");
else{
v=top->data;
p=top;
top=top->next;
free(p);
}
return v;
}
void main()
{
LINKSTACK *top;
top=malloc(sizeof(LINKSTACK));
top->next=NULL;
pushstack(top,2);
printf("%d\n",popstack(top));
}
很简单。
编译没问题,然而运行时输出结果却不对。不知为何,请教高手。赫赫 |
|