C言語の線形リストについての質問になります。
現在C言語を学び始めて2ヶ月目の者です。
文字配列を一文字ずつ順番に線形リストに挿入していきたいのですが、現在以下のコードでSegmentation Faultが出てしまっている状態です。
int main のwhile文の中が問題であるのではないかと睨んでいるのですが、どう書けば正常に動くのかが解らない状態です。
ご指導いただければ幸いです。
よろしくお願い致します。
C
1typedef struct node 2{ 3 char c; 4 struct node *next; 5}node_t; 6 7 8void printlist(node_t *head) 9{ 10 node_t *temp = head; 11 12 while(temp != NULL) 13 { 14 printf("%c - ", temp -> c); 15 temp = temp -> next; 16 } 17} 18 19node_t *create_new_node(char c) 20{ 21 node_t *result; 22 23 result = malloc(sizeof(node_t)); 24 result -> c = c; 25 result -> next = NULL; 26 return (result); 27} 28 29int main() 30{ 31 int i; 32 node_t *temp; 33 node_t *head; 34 node_t *prev; 35 36 i = 0; 37 char name[4] = "JOHN"; 38 head = NULL; 39 while (name[i]) 40 { 41 prev = head; 42 temp = create_new_node(name[i]); 43 while(prev != NULL) 44 { 45 prev = prev->next; 46 } 47 prev->next = temp; 48 i++; 49 } 50 51 printlist(head); 52}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。