연결 리스트를 사용한 관리프로그램의 코드 의문점이 있습니다.
민트맛캔디
2023.04.01
함수 코드 해석질문 요약 :연결 리스트에 관한 의문점이 있습니다.질문 내용 :
typedef struct _Card
{
char CardNum[4];
char Name[10];
char School[15];
char Tel[15];
char Email[20];
struct _Card *link;
}Card;
Card *Head;
데이터형이 구조체Card인 포인터형 변수 Head
메모리에할당시에 (4byte 10byte 15byte 15byte 20byte ||주소값 저장할 수 있는 link포인트변수)
이런식으로 노드가 하나 생성 되는건가요?;;
void Init_Card()
{
Head = (Card*)malloc(sizeof(Card));
Tail = (Card*)malloc(sizeof(Card));
(*Head).link = Tail;
(*Tail).link = Tail;
}
//(head data || link) -- (Tail data || link) -- (Tail data)
위에 주석처리한 부분이 제가 위의 코드를 해석해봤는데, 노드끼리 연결을 제대로 한게 맞는지 모르겠습니다.
머리와 꼬리를 만들어주는 이유는 저 사이에 새로운 노드를 입력하기 위해서 새로운 노드를 입력하기 전에 메모리에 데이터를 할당하는건지 궁금합니다.