연결리스트 코딩 오류

조회수 32회
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define S_SIZE 50
typedef struct NODE {
    char title[S_SIZE];
    int year;
    struct NODE* link;
}NODE;
int main(void)
{
    NODE* list = NULL;
    NODE* prev, * p, * next;
    char buffer[S_SIZE];
    int year;

    while (1)
    {
        printf("책의 제목을 입력하시오: (종료하려면 엔터)");
        gets_s(buffer, S_SIZE);
        if (buffer[0] == '\0')
            break;

        p = (NODE*)malloc(sizeof(NODE));
        strcpy_s(p->title, buffer);
        printf("책의 출판 연도를 입력하시오: ");
        gets_s(buffer, S_SIZE);
        year = atoi(buffer);
        p->year = year;
        if (list == NULL)
            list = p;
        else
            prev->link = p;
        p->link = NULL;
        prev = p;
    }
    printf("\n");

    p = list;
    while (p != NULL)
    {
        printf("책의 제목: %s 출판 연도: %d \n", p->title, p->year);
        p = p->link;
    }

    p = list;

    while (p != NULL)
    {
        next = p->link;
        free(p);
        p = next;
    }
    return 0;
}
  • 다음과 같은 오류가 발생합니다. NULL 포인터 'p' 가 역참조 하고있다, 초기화 되지않은 로컬 포인터 변수 'prev'가 사용되었다 김주영 2021.6.5 22:52

답변을 하려면 로그인이 필요합니다.

Hashcode는 개발자들을 위한 무료 QnA 사이트입니다. 계정을 생성하셔야만 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 계정을 생성하셔야만 글을 작성하실 수 있습니다.