【发布时间】:2017-10-12 18:31:07
【问题描述】:
所以我试图从用户那里获取输入并将其存储在链表中,使用数组(每 5 个字符创建一个新的链表)。获得EOF后我想打印输入(实际上打印每个链表中的数组) 这是我的代码:
#include <stdio.h>
#include <stdlib.h>
#define MAX 5
typedef struct charNode {
int arr[MAX];
struct charNode *next;
} charNode;
void addNode();
void printAll();
int main(){
int c,i;
charNode *head=malloc(sizeof(charNode));
charNode *current=head;
while((c=getchar())!=EOF){
while(i<MAX){
current->arr[i++]=c;
}
i=0;
addNode(current);
}
printAll(head);
return 0;
}
void addNode(charNode *current){
struct charNode *link = (struct charNode*) malloc(sizeof(struct charNode));
current->next =link;
link->next = NULL;
current=current->next;
}
void printAll(charNode *head){
int j=0;
while(head->next!=NULL){
while(j<MAX){
printf("\n %d \t",head->arr[j++]);
}
printAll(head->next);
}
return;
}
我收到“分段错误(核心转储)”错误..
【问题讨论】:
标签: c arrays linked-list segmentation-fault runtime-error