数据结构 初始化线性表
#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)就可以了。引用类型不需要加&取地址的