分页: 1 / 1

c语言链表问题

发表于 : 2017-04-05 13:13
hanis_ghost
能正常输入输出,但最后总显示 段错误(核心已转储)咋回事呢?谢谢

代码: 全选

#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>

int main()
{
	struct data
	{
		int pass;
		struct data *next;
	};
	struct data *first=NULL;
	struct data *current=NULL;
	struct data *previous=NULL;
	char text;
	
	while(1)
	{
		printf("continue?(y or n):");
		setbuf(stdin,NULL);
		scanf("%c",&text);
		if(tolower(text)=='n')
			break;
		current=malloc(sizeof(struct data));
		if(first==NULL)
			first=current;
		if(previous!=NULL)
			previous->next=current;
		scanf("%d",&current->pass);
		current->next=NULL;
		previous=current;
	}
	current=first;
	while(1)
	{
		
		if(current!=NULL)
			printf("%d\n",current->pass);
		previous=current;
		current=current->next;
		free(previous);
		previous=NULL;
	}
	first=NULL;
	return 1;
}