C语言指针里面的细节(坑)
void PushToHead(HeadNode *&head, elemType data)
{
HeadNode temp = CreateNode(data);
if (head == NULL)
{
//head = &temp;
*head = temp;
}
else
{
temp->next = *head;
//head = &temp;
*head = temp;
}
}
temp是局部变量,我要是head=&temp的话,就意味着我把temp的地址赋值给head,当函数一结束,该变量会自动释放。head指向的地址就没值了。(妈蛋,花了一下午时间终于找到问题了)。而createnode方法里通过malloc方法申请的地址不会自动释放。
浙公网安备 33010602011771号