Я создал связанный список слов из текстового файла в UTF-8, и я пытаюсь распечатать этот список разделенных слов в другой текстовый файл.
Я протестировал свою реализацию связанного списка, и он работает (я могу распечатать каждый узел на stdout), поэтому я думаю, что может быть проблема с передачей списка в мою функцию, которая печатает вфайл.
Моя структура:
struct node_struct
{
void *data;
struct node_struct *next;
}node;
Вот мое главное, чтобы проверить программу:
int main()
{
FILE *fptr;
node *ptr = malloc(sizeof(node));
fptr = fopen( "story.txt", "r" ); //open the text file
ptr = getwords( fptr );
//get words separates words from the file and return pointer to first node in the list
fclose( fptr );
fptr = fopen( "output.txt", "w" );
fprinttext( fptr, ptr ); // fprinttext takes file and pointer to first node as parameter to output the list to text file
fclose( fptr );
return 0;
}
Вот функция fprinttext
void fprinttext(FILE *fp, node *list)
{
if(list == NULL)
{
printf("The list is empty!\n");
}
while (list != NULL) {
fprintf(fp, "%s\n", (char *)list->data);
list = list->next;
}
return;
}
Если в моем файле story.txt текст «Да пребудет с тобой сила. \ N», я ожидаю, что программа выведет разделенные слова в виде отдельных строк в файле output.txt, но я получаю ошибку сегментации, как только я вхожу в цикл while. ,Что я делаю не так в своем коде?