lee_studying 发表于 2018-6-26 21:37:15

关于函数参数与指针的关系咨询

本帖最后由 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]
查看完整版本: 关于函数参数与指针的关系咨询