你这个链表在while循环体里面被误操作断掉了吧:Node * p;//p此时是野指针 head->next=p;//head的next域被无效的指针值覆盖 while(fgetc(fp)!=EOF){ p=(Node*)malloc(sizeof(Node));//没问题 fscanf();//没问题 p=p->next;//p是通过malloc()返回的新节点,但节点中的next域没有来得...