это не домашняя работа, это просто тот факт, что я не посещал школу более 20 лет, и мне НИКОГДА не приходилось использовать связанные списки для чего-либо вообще. Так что я не в своей стихии.
во всяком случае, у меня есть
struct Data_Struct {
char *Name;
char *Task;
char *Pos;
struct Data_Struct *Next;
};
typedef struct Data_Struct MyData;
Это довольно простая структура для связанного списка.
Как видите, данные хранятся в char *, и когда я заполняю список, я копирую указатели туда.
Все хорошо. Проблема начинается, когда эти указатели перезаписываются, и я теряю исходные данные. Я пытался копировать данные в локальный char * malloc'ed в каждом "list_add ()", но я продолжаю сбой или потерю данных.
Да, я выделяю достаточно и да, я копирую данные и проверяю, правильно ли они скопированы. Я пытался использовать memcpy, strcpy и т. Д. И т. Д.
Мне нечем пытаться, поэтому мой вопрос в том, как сделать так, чтобы данные, которые я буду добавлять в список, были локальными. как мне скопировать эти символы *, входящие в список, в локальные переменные.
Хотя объяснение того, как это сделать и почему мой код плохой, в порядке, я предпочитаю код с объяснением.
Спасибо.
Jess.