大神过来看看我这个程序错哪了
不知道为什么呀?求大神!
一种方法是把scanf提到主程序里,在输入学生数之后再malloc
但这种方法跟你的思路可能不大相符
另外一种就是在inputstu()里scanf、malloc;void inputstu(struct student **s,int *len){
int i;
printf("请输入学生数:\n");
scanf("%d",len);
*s=(struct student*)malloc(*len*sizeof(struct student));
for(i=0;i<*len;i++){
printf("请输入第%d个学生名字:\n",i+1);
scanf("%s",(*s).name);
printf("请输入第%d个学生年纪:\n",i+1);
scanf("%d",&(*s).age);
}
} main 的len没有初始化,是不确定的,应该把malloc放进inputstu内void inputstu(student* stu, int* len)
{
int i;
printf("学生数??");
scanf("%d", len);
student* stu = (student*) malloc(*len * sizeof(student));
for (i = 0; i < *len; i++)
{
...
...
...
}
}
565123 发表于 2013-10-7 22:58 static/image/common/back.gif
main 的len没有初始化,是不确定的,应该把malloc放进inputstu内
可是我定义了len,那它不就有对应的内存地址了吗,再把地址发给inputstu,利用指针来初始化,我感觉这逻辑没什么 问题,我这么想错在哪里呀,大神! 逆风飞翔 发表于 2013-10-8 07:00 static/image/common/back.gif
可是我定义了len,那它不就有对应的内存地址了吗,再把地址发给inputstu,利用指针来初始化,我感觉这逻辑 ...
你主程序第一句定义len,但没有赋值,第二句malloc怎么知道给你多大空间?
但你把malloc放进inputstu函数的话,参数应该得改变一下吧。
tsembrace 发表于 2013-10-7 22:28 static/image/common/back.gif
一种方法是把scanf提到主程序里,在输入学生数之后再malloc
但这种方法跟你的思路可能不大相符
另外一种就 ...
谢谢你。。。。 我也常出现这样的错误耶{:1_1:}{:1_1:}{:1_1:} 夏七夕 发表于 2013-10-8 16:24 static/image/common/back.gif
我也常出现这样的错误耶
呵呵,:handshake:victory: 既然来了,还是顶一下再走吧 学习了。。。。。。 顶一下吧! 额,确实,我以前老是犯这样的错误
页:
[1]