Я пытаюсь прочитать текстовый файл и сохранить каждую строку в узле списка ссылок типа void *.Вот заголовочный файл списка.
#ifndef LINKEDL
#define LINKEDL
struct node_s {
void *data;
struct node_s *next;
};
struct node_s *node_create(void*);
struct node_s *list_insert_after(struct node_s*, void*);
struct node_s *list_insert_beginning(struct node_s*, void*);
int list_remove(struct node_s*, struct node_s*);
int list_foreach(struct node_s*, int(*)(void*));
int printstring(void *s);
#endif
Все функции связанного списка были тщательно протестированы, поэтому я думаю, проблема в том, как я их использую.Чего я хочу добиться, так это иметь одну строку в каждом узле, и теперь у меня есть последняя строка в каждом узле.Я думаю, это как-то связано с указателями на символы, но уже потратил на это два часа без впечатляющего прорыва, так что, может быть, кто-то может помочь?Кроме того, список, который я использую, представляет собой измененный список, как видно здесь .
if (file == NULL)
{
perror("Error opening file");
}
else
{
char mystring[SIZE];
char temp[SIZE];
list = node_create((void*)mystring);
current = list;
while (fgets(mystring, SIZE, file) != NULL)
{
strcpy(temp, mystring);
printf("%d\t%s",counter++,temp);
current=list_insert_after(current, (void*)temp);
}
fclose(file);
}
ОБНОВЛЕНИЕ: Спасибо всем.