list read(void)
{
int K;
int i;
list h,s,p;
scanf("%d",&K);
h=(list)malloc(sizeof(struct node));
p=h;
for(i=0;i<K;i++)
{
s=(list)malloc(sizeof(struct node));//试改为s=(list)malloc(sizeof(list));
scanf("%d%d",&s->coe,&s->index);
p->next=s;
p=s;
}
p->next=NULL;
return h;
}
当按上述的注释改动,运行会出现问题(堆损坏),但是调试过程却看不出什么,而且能够正常返回,是一个很碍事,很麻烦的问题。