C语言为什么无法输出结果?

#include<stdio.h>#defineN4structstudent{char*name;intnumber;intscore;};intmain(){type... #include<stdio.h>
#define N 4
struct student
{
char *name;
int number;
int score;
};
int main()
{
typedef struct student stu;
stu arry[N];
int i;
for(i=0;i<N;i++)
{
printf("Input the student%d informaintion:\n",i+1);
scanf("%s",&arry[i].name);
scanf("%d",&arry[i].number);
scanf("%d",&arry[i].score);
}
for(i=0;i<N;i++)
{
printf("the student%d: %s %d %d\n",i+1,arry[i].name,arry[i].number,arry[i].score);
}
return 0;
}
展开
 我来答
share_fun1
2013-12-27 · TA获得超过610个赞
知道小有建树答主
回答量:298
采纳率:0%
帮助的人:367万
展开全部

段错误

student的name没有申请空间

两个地方需要修改

struct student
{
char name[10];//大小可根据需求自己改变
int number;
int score;
};

第二个地方

 scanf("%s",&arry[i].name);改为
  scanf("%s",arry[i].name);

谢谢采纳

追问
恩,改了可以输出!如果我想用指针指向我输入的名字,要怎么样定义啊?
追答
那你指向的那块地址需要申请内存。比如说一个数字或者malloc的一块内存
走马看飞腾0954
2013-12-27 · TA获得超过445个赞
知道小有建树答主
回答量:319
采纳率:100%
帮助的人:257万
展开全部
scanf("%s",&arry[i].name); scanf("%d",&arry[i].number); scanf("%d",&arry[i].score); }
你arry[i].name不要&号,因为你name是指针,你可以理解为name数组,这样好理解,呵呵
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友ba9e209
2013-12-27
知道答主
回答量:12
采纳率:0%
帮助的人:10.5万
展开全部
struct student{char *name;int number;int score;};这儿应该有分号吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式