Status InitList(LinkList L)
{ / 操作结果:构造一个空的线性表L /
*L=(LinkList)malloc(sizeof(struct LNode)); / 产生头结点,并使L指向此头结点 /
if(!*L) / 存储分配失败 /
exit(OVERFLOW);
(*L)->next=NULL; / 指针域为空 */
return OK;
}
它是怎么实现将L指向此头结点的???
Status InitList(LinkList L)
{ / 操作结果:构造一个空的线性表L /
*L=(LinkList)malloc(sizeof(struct LNode)); / 产生头结点,并使L指向此头结点 /
if(!*L) / 存储分配失败 /
exit(OVERFLOW);
(*L)->next=NULL; / 指针域为空 */
return OK;
}
它是怎么实现将L指向此头结点的???
1、L是一个指针变量,那么下面这句就是错误的:
*L=(LinkList)malloc(sizeof(struct LNode));
2、你申请的头结点地址赋给了L, 无法返给调用函数使用
可以修改为:
Status InitList(LinkList &L)
{ / 操作结果:构造一个空的线性表L /
L=(LinkList)malloc(sizeof(struct LNode)); / 产生头结点,并使L指向此头结点 /
if(L) / 存储分配失败 /
return FALSE;
L->next=NULL; / 指针域为空 */
return OK;
}