#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct ll
{
char data[50];
struct ll *next;
struct ll *prev;
};
typedef struct ll node;
main()
{
node *head;node *temp1;node *temp2;
head = (node *)malloc(sizeof(node));
temp1 = head;
FILE *p;
int n;
char s[50];
p = fopen("studentRecords.txt","r");
while((fscanf(p, "%s", s)) != EOF)
{
strcpy(head->data, s);
head->next = (node *)malloc(sizeof(node));
head->next = head->next->prev;
head = head->next;
}
head = NULL;
fclose(p);
for(temp2 = temp1; temp2->next != NULL; temp2 = temp2->next)
printf("%s\n", temp2->data);
}
上記のコードを実行すると、出力はセグメンテーション違反です。これを修正するにはどうすればよいですか? 私は学生の記録を文字列としてstudentRecords.txt
ファイルに持っています。