首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

为何分配内存的时候要乘以5?不乘以的话输入完第5个后就报错了

2013-10-29 
为什么分配内存的时候要乘以5?不乘以的话输入完第5个后就报错了。//初始化Status List_Init(Listptr L){Lis

为什么分配内存的时候要乘以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个这样的单元

热点排行