请问,以下程序该怎么改呢?怎么老是调不对?"->top"是错误的吗?
#include<stdlib.h>
#include<stdio.h>
typedef char datatype;
typedef struct stacknode{
datatype data;
struct stacknode *next;
struct stacknode *top;
}stacknode,*linkstack;
void initstack(linkstack *p){
p->top=NULL;
}
int stackempty(linkstack *p){
return p->top==NULL;
}
void push(linkstack *p,datatype x){
stacknode *q;
q=(stacknode*)malloc(sizeof(stacknode));
q->data=x;
q->next=p->top;
p->top=q;//>>>>>>>
}
datatype pop(linkstack *p){
datatype x;
stacknode *q=p->top;
if(stackempty(p))
error("stack underflow");
x=q->data;
p->top=q->next;
free(q);
return x;
}
[求助]一个错误程序的修改