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方法申请的地址不会自动释放。

posted on 2017-10-11 16:45  沐青竹  阅读(336)  评论(0)    收藏  举报

导航