이것은 숙제가 아닙니다. 20 년 이상 학교에 다니지 않았으며 전혀 링크 된 목록을 사용하지 않아도됩니다. . 그래서 나는 여기서 내 요소에서 벗어났다. 어쨌든, 나는 연결리스트에 대한 매우 간단한 구조체이다데이터의 로컬 복사본을 연결된 목록으로 만들기
struct Data_Struct {
char *Name;
char *Task;
char *Pos;
struct Data_Struct *Next;
};
typedef struct Data_Struct MyData;
있습니다.
데이터가 char *에 저장되어 있으며 목록을 채울 때 포인터가 복사됩니다. 모두 정상입니다. 문제는 그 포인터가 덮어 씌워지고 원래의 데이터를 잃을 때 시작됩니다. 모든 "list_add()"에 로컬 char * malloc'ed로 데이터 복사를 시도했지만 충돌 또는 데이터 손실 중 하나를 유지합니다. 예, 충분히 할당하고 예, 데이터를 복사하고 올바르게 복사되었는지 확인합니다. 나는 memcpy, strcpy 등으로 시도했다.
내가 궁금한 점이 있으므로 목록에 추가 할 데이터가 로컬인지 어떻게 확인해야합니까? 그 char *를리스트에 지역 변수로 복사하는 방법은 무엇입니까?
이 작업을 수행하는 방법과 내 코드가 좋지 않은 이유에 대한 설명은 괜찮습니다. 설명이있는 코드를 선호합니다. 감사합니다.
제스.