字符链表的创建

  字符链表的创建,不清楚的时候,指针乱飞,出现Segmentation Fault。改正后,creat函数中,p1=p2时,p1去调用malloc,p1指向另外的一个区域,这点还是不太清楚。

代码先贴着~

View Code
1 #include<stdio.h>
 2 #include<stdlib.h>
 3 typedef struct node{
 4     char x;
 5     struct node *next;
 6 }myNode;
 7 int main()
 8 {
 9     myNode *head,*p;
10     void creat(myNode *head);
11     head=(myNode*)malloc(sizeof(myNode));
12     head->next=NULL;
13     creat(head);
14     p=head->next;
15     while(p!=NULL)
16     {
17         printf("%c    ",p->x);
18         p=p->next;
19     }
20     return 0;
21 }
22 void creat(myNode *head)
23 {
24     myNode *p1,*p2;
25     p2=head;
26     p1=(myNode*)malloc(sizeof(myNode));
27     p1->x=getchar();
28     if(p1->x != '\n')
29     {
30         p1->next=p2->next;
31         p2->next=p1;
32         p2=p1;
33     }
34     else 
35         return;
36     while(p1->x != '\n')
37     {
38         p1=(myNode*)malloc(sizeof(myNode));
39         p1->x=getchar();
40         p1->next=p2->next;
41         p2->next=p1;
42         p2=p1;
43     }
44 }
45    
posted @ 2012-09-27 11:39  长溪  阅读(219)  评论(0编辑  收藏  举报