1.创建链表中没有分配空间
for (i=1;i<=n;i++)
{
//遗漏,从而使链表的每一个数据的地址都一样
s=(struct node *) malloc (sizeof(struct node));
scanf("%ld",&s->data);
s->next=p;
p=s;
}
2.对指针赋值为空后又对指针的内容进行赋值
struct node
{
long data;
struct node *next;
}*p;
p=(struct node *) malloc (sizeof(struct node));
p=NULL;
p->data=1;//错误
3.释放指针后又对指针进行操作
free(p);
p->data=1;//错误
原文:http://www.cnblogs.com/cmyg/p/6618933.html