구조체 동적메모리 할당에 대한 질문입니다

ddong90의 이미지

전체적인 흐름은 이해하겠으나...

PDATA는 struct _node의 포인터인데...

PDATA nodeAlloc()라고 함수 같이 선언한것 같은데...

어떤 구조인지 이해가 잘 가지않습니다

이 흐름에 대해서 설명좀 부탁드립니다

typedef struct _node
 
{
 
      int data;
 
      struct -node *link;
 
}DATA, *PDATA;
 
 
 
PDATA nodeAlloc(int data)
 
{
 
      PDATA p=(PDATA)malloc(sizeof(DATA));
 
      p->data=data;
 
      p->link-NULL;
 
      return p;
 
}
 
void main()
 
{
 
      PDATA head=NULL, p=NULL;
 
      head=p=nodeAlloc(10);
 
      p->link=nodeAlloc(20);
 
      p=p->link;
 
      p->link=nodeAlloc(30);
 
      for(p=head ; p ; p=p->link)
 
         printf("%d\n",p->data);
 
}
linusix의 이미지

안녕하세요

_node 부분을 보시면 data 와 다음 노트를 가리키는 link 를 보실 수 있습니다.

전형적인 순방향 리스트 구조입니다.

위 소스는 할당만 구현된 일부의 소스입니다.