入参需要用指针的指针,两个*。一个*的话,Init函数内部知识修改了指针的值,并没有修改指针指向的内容,因此,在函数调用结束后,指针值不会带出去,只有指针指向的内容(即指针指向的内存实际内容)才能带出去。
试试吧:
int Init(SqList ** L)
{
*L->elem = ....;
*L->length = ....;
*L->listsize = ....;
return 0;
}
没什么错误
但是最好 L->listsize = 100; 修改为 L->listsize = LIST_INIT_SIZE;