링크 된 목록에 포함 된 연결된 목록의 정보를 추가/업데이트하려고하는 초보자입니다. 내 프로그램은 간단한 연락처 목록입니다. 여기서 사용자는 연락처를 연락처에 추가 한 다음 각 연락처에 정보를 추가 할 수 있습니다 (별도의 정보 목록 사용). 내 addInformation 함수로 세분화 오류가 발생하며 문제가 무엇인지 알 수 없습니다. 사람이 내 코드에서 잘못된 뭘하는지 말해 줄 수 있다면다른 연결된 목록 (C 프로그래밍)에 포함 된 연결된 목록의 정보 추가/업데이트 (C 프로그래밍)
void addInformation(Contact *myContacts, char *contactName, char *infoName, char *infoValue) {
Contact *ptr = myContacts;
Info *ptr2 = ptr->information;
if (ptr == NULL) {
printf("Error: No contacts added.\n");
return;
}
while (ptr != NULL) {
if (ptr->name != contactName) {
printf("Error: Contact does not exist\n");
return;
}
else {
ptr2->name = infoName;
ptr2->value = infoValue;
ptr2->next = NULL;
ptr->information = ptr2;
}
ptr = ptr->next;
}
return;
}
가이 많이 주시면 감사하겠습니다 : 내 addInformation 기능이 여기
typedef struct info {
char *name;
char *value;
struct info *next;
} Info;
typedef struct contact {
char *name;
Info *information;
struct contact *next;
} Contact;
을 그리고 다음은 구조를 정의하는 방법입니다! 감사.
일부 추상화를 목록에 추가하십시오. 부디. –
@Eugene Sh .: 그렇습니다. 기본 아이디어는 연락처 목록이 있다는 것입니다. 각 연락처에는 해당 연락처와 관련된 이름 및 정보 목록이 있습니다. 각 정보에는 정보의 이름과 값 및 해당 연락처에 대한 다음 정보 항목에 대한 포인터가 들어 있습니다. add-at-front 알고리즘을 사용하여 연락처 목록에 연락처를 추가하고 추가 정보를 사용하여 연락처 정보 목록에 정보 (핸드폰 번호, 전자 메일, 트위터 핸들 등)를 추가하려고합니다. at-end 알고리즘. –
간단하고 반복 가능한 (편집 가능한) 예를 제공해주십시오. – schorsch312