c语言链表问题

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
hanis_ghost
帖子: 41
注册时间: 2015-06-19 21:16

c语言链表问题

#1

帖子 hanis_ghost » 2017-04-05 13:13

能正常输入输出,但最后总显示 段错误(核心已转储)咋回事呢?谢谢

代码: 全选

#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;
}











回复