主函数里面 Node p =(Node)malloc(sizeof(Node)); 为什么会报错
#include<stdio.h>
#include<stdlib.h>
typedef struct node{
int key;
int value;
node *next;
}Node;
Initiate(Node *p){
p->key=NULL;
p->value=NULL;
p->next=NULL;
}
//创建链表来存储
void CreateList(Node *p){
Node q =(Node)malloc(sizeof(Node));
printf("输入每一个结点的关键字和值 \n");
scanf("%d",q->key);
scanf("%d",q->value);
q->next=NULL;
if(p==NULL){
p=q;
}
else{
q->next=p->next;
p->next=q;
}
}
int main(){
Node p =(Node)malloc(sizeof(Node)); 这里为什么报错啊
Initiate(&p);
int i,k;
for(i=0;i<5;i++){
CreateList(&p);
}
printf("输入要查询的值的关键字: \n");
scanf("%d",&k);
while(p.key !=k) {
p=p->next;
}
if(p.value!=NULL)
printf("成功");
else if(p==NULL)
printf("失败");
return 0;
}