书上源代码如下
void Destroy(struct StuNode**ph) /*直接用*h的话*/
{ struct StuNode*p;
p=*ph;/*如果直接用p=h不行吗?*/
while(p!=NULL)
{ *ph=p>-next;
free(p);
p=*ph;
}
printf("已删除\n");
*ph=NULL;
} 如果直接用头指针,h等于最后一个结构体的指针域,这个指针域的指针同样是个空指针,书上说需要对头指针进行“双向传递”所以要用二级指针。
明白了,就是型参的值被消除,而实参的值还是原来的,所以head依旧指向第一个结点,而第一个结点已经不存在了,哪此时的head算不算野指针呢?
追答对,就是这个意思,这当然是野指针了,一般被free之后的指针都需要被置成NULL的