新手问题,指针变量作为参数
void SplitList(Linklist *L,Linklist *la,Linklist *lb)
{
//这里有处理代码,分离后la和lb不为空,是两个链表的表头,代码就不贴了,没问题
}
void main()
{
Linklist *L;//这里L不为空
Linklist *la=NULL;
Linklist *lb=NULL;
SplitList(L,la,lb);
}
这里为什么la和lb执行完分离之后依然为空呢?难道是指传递的原因?
[解决办法]
你的做法是值传递
实参 la 和 lb 没改变
[解决办法]
SplitList 做了什么?
看起来你是要L指针中输出两个指针,那么你这样做是有问题的,函数看起来应该这样定义:
void SplitList(Linklist *L,Linklist **la,Linklist **lb)
{ //这里有处理代码,分离后la和lb不为空,是两个链表的表头,代码就不贴了,没问题 }
[解决办法]
应该将存放指针的单元的地址传给函数,而不是将指针值传给函数
[解决办法]
void SplitList(Linklist *L,Linklist **pla,Linklist **plb)
{
//将此函数中所有la替换为(*pla),lb替换为(*plb)
//这里有处理代码,分离后la和lb不为空,是两个链表的表头,代码就不贴了,没问题
}
void main()
{
Linklist *L;//这里L不为空
Linklist *la=NULL;
Linklist *lb=NULL;
SplitList(L,&la,&lb);
}