69,382
社区成员
发帖
与我相关
我的任务
分享
函数最后写一个释放链表的函数,把链表全部释放掉;
free( head)
{
struct NODE *p1,*p2;
p1 = head;
while( p1 != NULL )
{
p2 = p1;
p1 = p1->next;
free(p1);
}
head = NULL;
}
void node_list()
{
struct NODE *ptHead,*ptTail;
add_node(ptHead,ptTail); /*第k次追加节点*/
add_node(ptHead,ptTail); /*第k+1次追加节点*/
}
void add_node(struct NODE *ptHead, struct NODE *ptTail)
{
struct NODE *ptTemp;
/* create a new node*/
ptTemp=(struct NODE *)malloc(sizeof(struct NODE));
...
...
/* add to the list */
ptTail->ptNext=ptTemp; /* ptTemp在该函数结束后是不是就释放掉了?链表中的尾节点在该函数结束后实际上指不到下个节点?*/
ptTail=ptTemp;
}