请教兄弟们关于 引用符“&”的纯C写法
typedef struct Lnode(){
elemtype inf;
struct Lnode *next;
}Lnode,* LinkList;
status initlist(LinkList &L )
//release版本中,是否可以直接写成 status initlist (LinkList *L)
//debug版本中,除此之外就必须加断言 assert(L!=NULL)。
--------
是不是如此??
搜索更多相关的解决方案:
兄弟
----------------解决方案--------------------------------------------------------
用个头结点不就没有这么多问题了吗?
----------------解决方案--------------------------------------------------------
加断言是为了在debug的时候更容易找到错误
----------------解决方案--------------------------------------------------------
use pointer: and remember to check NULL (that's the only essential difference between pass-by-value and pass-by-pointer).
status init_linklist(Linklist* pList )
{
Assert(pList != NULL);
.......
}
//////别人告诉我的。
TO 2楼:头结点是可以在函数里面定义吧,可是函数必须要一个参数啊,这样定义个参数不知道对不对?
----------------解决方案--------------------------------------------------------
你的链表是在在调用initlist之前就已经有了嘛,在创建链表的时候创建一个头结点。
typedef struct Lnode()
{
elemtype inf;
struct Lnode *next;
}Lnode,* LinkList;
int main()
{
LinkList L=(Lnode *)malloc(sizeof(Lnode)); //这样创建一个链表
L->next=NULL;
initlist(L); //然后就可以调用你的函数了,L不可能是NULL了
}
status initlist(LinkList L ) //L已经是指针了,不用再取L的地址,指针重数多了容易出错
{}
----------------解决方案--------------------------------------------------------