字符链表的创建,不清楚的时候,指针乱飞,出现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