연결리스트를 이용한 관리 프로그램 중 리스트삭제
바나나
질문 제목 : 리스트 삭제 오류질문 요약 :삭제할 이름을 입력 후 작동이 중지됩니다. 어느 부분을 수정해야하는지 도와주세요 ㅠㅠ질문 내용 : 삭제부분 소스입니다.
void fndelete()
{
node *cur = head.start; // 커서
node *temp; // 임시 변수
char name[name_len]; // 삭제할 이름
if (cur == null) { printf(삭제할 내용이 존재 하지 않습니다 \n); return; }
printf(no.\t 학번 \t 이름\t 학과\t 학점\n );
while (cur != null)
{
int i;
for (i = 0; icur; i++){
printf(───────────────────────────────\n);
printf(%d\t %d\t %s\t %s\t %d\t %s\n, i, cur-num, cur-name, cur-major, cur-grade, cur-score);
cur = cur-next; // 커서를 이동시킨다
}
}
printf(삭제할 이름 입력 : ); fflush(stdin); gets(name);
if (cur != null)
{
head.start = cur-next;
free(cur);
head.count--; // 노드 갯수 감소
printf( - 삭제가 완료 되었습니다 - \n);
return;
}
while (cur-next != null)
{
if (strcmp(cur-next-name, name) == 0)
{
temp = cur;
cur = cur-next;
temp-next = cur-next;
head.count--; // 노드 갯수 감소
free(cur);
printf( - 삭제가 완료 되었습니다 - \n);
return;
}
cur = cur-next;
}
printf(존재하지 않는 이름입니다 \n);
}