curr->data
에 데이터를 입력 할 때 우선 curr = (NODE*) malloc (sizeof(NODE));
을 수행하여 메모리를 할당합니다. 그런 다음 목록을 작성하고 결국 결국 인쇄하십시오. 프로그램의 어딘가에서 내가 사용한 기억을 자유롭게해야하지만, 언제해야할지 모른다. 목록을 작성한 후 또는 목록을 인쇄 한 후에? 아니면 내가 할 수 있을까?링크 된 목록의 노드를 해제하는 경우
printf("How many elements do you want to make? ");
scanf("%d", &NumElem);
head = NULL;
for (i = 0; i < NumElem; i++)
{
//memory allocate
curr = (NODE*)malloc(sizeof(NODE));
printf("Number %d: ", i+1);
scanf("%d", &curr->num);
FLUSH;
if (head == NULL)/*beginning of the list*/
{
curr->next = head;
head = curr;
*tail = curr;
}
else /*adding on the list*/
{
curr->next = head;
head = curr;
}
free (curr);
}//for
데이터를 현재 노드에 넣은 후 매번 해제 할 수 있습니까?
* 사용 * 완료 *. 이 경우 루프 사용을 마친 경우에도 사용하지 않은 것입니다. '자유'로 설정하면 '꼬리'와 '머리'(예 :)는 이제 개체가 '무료'일 때 정크를 가리 킵니다. –
내용을 알 수 없으므로 해제 한 메모리는 다시 참조 할 수 없습니다. 목록을 가지고 무엇을해야하고 (내가 생각한대로 인쇄 한 후) 목록을 탐색하여 길을 따라 각 노드를 자유롭게 만듭니다. –
아주 중요 : 'FLUSH;'란 무엇입니까? – Sebivor