[求助]单链表储存数据的问题
自学C,今天在书上看到有关单链表的内容,联系了一下在本论坛上关于模拟密码输入的帖子,决定写个无限制密码位数的程序(如下),什么地方搞错了?#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
struct psw
{
char c;
struct psw * next;
};
struct psw * add(struct psw * head,char c)
{
struct psw * p1;
//如果head的指针域为空,则申请一个节点,存入一个字符,并它赋予head的指针域;同时......
while(head->next=NULL)
{
p1=(struct psw *) malloc(sizeof(struct psw));
p1->next=NULL;
p1->c=c;
head->next=p1;
}
return head;
}
void show(struct psw * head)
{
struct psw * temp;
temp=head;
printf("\n");
while((temp->next)!=NULL)
{
printf("Right now you input:%c",(temp->next)->c);
temp=temp->next;
}
getch();
}
int main()
{
char c;
struct psw * head;
struct psw p;
head=&p;
p->next=NULL;
p->c='\0';
do
{
c=getch();
printf("*");
p=add(p,c);
}while(c!=13);
show(head);
}
[此贴子已经被作者于2007-10-20 20:31:38编辑过]