領域開放
Posted: 2011年7月20日(水) 14:54
学校の課題でプログラムを組む過程で出てきた関数について質問です。
連結リストで確保した領域を開放する関数らしいのですが、やっていることがいまいちわかりません。
while文内でそれぞれのノードの領域を開放し、最後にリストの領域を開放するってかんじなのでしょうか??
typedef struct LinkedListNode{
int data;
struct LinkedListNode *next;
} LinkedListNode;
typedef struct LinkedList{
int node_num;
struct LinkedListNode *head;
} LinkedList;
LinkedListFree(LinkedList *list)
{
LinkedListNode *ptr; /* 注目ノードへのポインタ */
LinkedListNode *rem; /* 削除ノード */
ptr = list->head;
while (ptr) { /* 終端ノードに到達するまでループ */
rem = ptr;
ptr = ptr->next;
free(rem);
}
free(list);
}
while文内でそれぞれのノードの領域を開放し、最後にリストの領域を開放するってかんじなのでしょうか??