数据结构初始化线性表

问题遇到的现象和发生背景

数据结构 初始化线性表

用代码块功能插入代码,请勿粘贴截图
#include
#include
#define LIST_INIT_SIZE 100
typedef int status; 
 typedef struct{
     int *elem;
     int length;
     int listsize;
 }sqlist;
 status init_sq (sqlist &L);
 
 
 status init_sq(sqlist &L){
         L.elem=(int *)malloc(LIST_INIT_SIZE*sizeof(int));
         if(!L.elem)
         return 0;
         L.length=0;
         L.listsize=LIST_INIT_SIZE;
         return 1;
 }
 
 
int main()
{     sqlist L;
       init_sq(&L);  //为什么L前不能加&; 
      printf("%d\n",L.listsize);
      printf("%p %p\n",L.elem);

}

运行结果及报错内容
    C:\Users\Administrator\Desktop\实验报告1_顺序表.cpp    In function 'int main()':

25 18 C:\Users\Administrator\Desktop\实验报告1_顺序表.cpp [Error] invalid initialization of non-const reference of type 'sqlist&' from an rvalue of type 'sqlist*'
13 9 C:\Users\Administrator\Desktop\实验报告1_顺序表.cpp [Error] in passing argument 1 of 'status init_sq(sqlist&)'

我想要达到的结果

刚开始学,看不懂报错。

你这是C++ 还是C?
如果想用C++,那么init_sq 的参数是引用了?
引用是对象的传递,你调用的时候加上 &,那是取地址符号,当然不能加&

init_sq(L)就可以了。引用类型不需要加&取地址的