关于函数参数与指针的关系咨询
本帖最后由 lee_studying 于 2018-6-29 22:27 编辑用c语言实现一个单链表的初始化函数
代码很简单如下:
typedef struct Node
{
ElemType data;
struct Node * next;
}Node;
typedef struct Node * LinkList;
Status InitList(LinkList *L)
{
(*L) = (LinkList)malloc(sizeof(Node)); /* 产生头结点,并使L指向此头结点 */
if(!(*L))// 分配存储失败
{
return Error;
}
(*L) -> next = NULL; // 空链表
return OK;
} 在主函数里有 int i;LinkList L;i = InitList(&L);实现链表的初始化。问题来了,如果在定义初始化链表函数时,参数为(LinkList L) 而不是( LinkList *L),相应的实现语句为i = InitList(L),程序运行时就会报错process return -1073749018这种错误,难道说定义初始化函数时,参数只能为(LinkList *L)吗?这里应该设计到c语言的指针与地址的关系,请懂的同学讲解一下,谢谢
页:
[1]