为什么分配内存的时候要乘以5?不乘以的话输入完第5个后就报错了。
//初始化
Status List_Init(Listptr L){
Listptr p=L;
int i=1;
Status status=error;
p->elem=(ElemType *)malloc(sizeof(ElemType)*5);————————乘以5???
p->length=0;
if(p->elem){
status=success;
cout<<"success"<<endl;}
cout<<"输入5个整数:"<<endl;
for(i=1;i<=5;i++)
{ p->length++;
cin>>p->elem[i];
}
return status;
}
[解决办法]
for(i=1;i<=5;i++)
{ p->length++;
cin>>p->elem[i]
你这不是要存5个数嘛,要有5个ElemType型的空间保存你的输入啊
[解决办法]
Listptr L;
List_Init(L);
cin>>pos;
List_search(L,pos,elem)}
晕,你这里传递的是对象呀,得传引用呀,改成:
Status List_Init(Listptr& L){
Listptr& p=L;
[解决办法]
是的,必须这样写,sizeof计算每个单元大小,5表示需要5个这样的单元