2 iseuwei ISEUWEI 于 2016.03.10 21:28 提问

C语言中顺序线性表的合并

结构体类型变量作为函数参数只能作为指针传递吗?为什么我写一个函数参数是结构体,下面引用时报错
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;
}

4个回答

caozhy
caozhy   Ds   Rxr 2016.03.10 21:35
已采纳

La Lb不是指针
pa=La->elem;pb=Lb->elem;
修改为
pa=La.elem;pb=Lb.elem;
或者把它们修改为指针。

ISEUWEI
ISEUWEI   2016.03.10 21:40

太感谢了,收我为徒吧大神图片说明

WinsenJiansbomber
WinsenJiansbomber   2016.03.10 22:30

好混乱的代码,怕是息都没搞清楚哪个是指针哪个是引用:

 ElemType *pa,*pb,*pc;
pa=La->elem;pb=Lb->elem;

改一下:

 ElemType *pa,*pb,*pc;
pa=&La.elem;
pb=&Lb.elem;
ISEUWEI
ISEUWEI 现在搞清楚了,谢谢指点
接近 2 年之前 回复
WinsenJiansbomber
WinsenJiansbomber   2016.03.10 22:31

咿呀,一不小心放多了两个 &!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!