2 sungaochao sungaochao 于 2016.03.27 16:57 提问

为什么输入就出现错误??

void CreateList(List &L,int n){
for(int i=0;i<n;i++){
printf("请输入%d个元素的值:",i+1);
int e;
scanf("%d",&e);
L.elem[i]=e;
L.length+=1;
}
}
创建一个顺序的线性表,输入表的n个元素值,为什么输入是就运行不了??

3个回答

caozhy
caozhy   Ds   Rxr 2016.03.27 17:23

List &L在哪里定义的是,是不是指针,有没有分配内存,其中elem数组有没有初始化,长度是否足够。

sungaochao
sungaochao 谢谢已经解决了
一年多之前 回复
qq423399099
qq423399099   Ds   Rxr 2016.03.27 17:46

建议楼主贴上完整代码

sungaochao
sungaochao 谢谢,已经解决了
一年多之前 回复
kikilizhm
kikilizhm   2016.03.28 01:00

首先你的代码是不完整的,结构体的定义不知道,create的入参 List &L,不知道能否这么用,还有L的传入的内存空间是外部传入的还是需要内部malloc申请的,需要确认清楚,我按照你的意思简单写了一下。

void CreateList(List L,int n){
int i = 0;
List
pl = NULL;

pl = malloc(sizeof(struct List);
if(NULL == pl)
{
print("malloc fail.\r\n");
return;
}
memset(pl, 0, sizeof(struct List);
for(int i=0;i printf("请输入%d个元素的值:",i+1);
int e;
scanf("%d",&e);
pl->elem[i] = e;
pl->length += 1;
}
L = pl;
return ;
}

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