C语言关于结构体参数调用的问题

img


求问各位战友们 这是什么原因呢?为什么调用之后 指针丢失了?是我哪里写错了吗

指针参数是不能修改指针地址的。这和形参不能修改传入变量是一个意思
将create的参数改为指针的指针,或者将传入参数作为返回值
比如

struct List *create(struct List * list,char data)
{
    ...
    return list;
}
struct List *L;
L = create(L,data);
push(L,data);

上课要听讲

struct List 
{
.....
};

void create(List * list,char data)
{
    ...
}