结构体类型变量作为函数参数只能作为指针传递吗?为什么我写一个函数参数是结构体,下面引用时报错
typedef struct {
char name[10];
char sex;
long num;
}ElemType;//自定义元素类型。
typedef struct{
ElemType *elem;//存储空间基址。
int length;//当前长度。
int listsize;//当前分配的存储容量(以sizeof(ElemType)为单位)。
}SqList;//定义顺序线性表类型
void MergeList_Sq(SqList La,SqList Lb,SqList *Lc){
ElemType *pa,*pb,*pc;
pa=La->elem;pb=Lb->elem;
}
La Lb不是指针
pa=La->elem;pb=Lb->elem;
修改为
pa=La.elem;pb=Lb.elem;
或者把它们修改为指针。
好混乱的代码,怕是息都没搞清楚哪个是指针哪个是引用:
ElemType *pa,*pb,*pc;
pa=La->elem;pb=Lb->elem;
改一下:
ElemType *pa,*pb,*pc;
pa=&La.elem;
pb=&Lb.elem;
咿呀,一不小心放多了两个 &!