每次我读employ.sex程序崩溃,没有错误,我找不到为什么会发生这种情况。我在C大学很新,有什么问题吗?“还皮尼?请帮帮忙,我找不到任何东西。谢谢。”
#include <stdio.h>
#define N 5
struct stoixeia
{
int age;
float h;
char sex;
};
struct melos
{
char fname[50];
char lname[50];
int mnum;
struct stoixeia employ;
};
struct melos diavasma(int );
int main()
{
struct melos pin[N];
struct melos * ptr;
int i,pli;
for(i=0;i<N;i++)
{
pin[i]=diavasma(i);
printf("%d", pin[i].mnum); // i just use this to see if it returns anything
}
return 0;
}
struct melos diavasma(int i)
{
struct melos pin[i];
struct stoixeia employ;
printf("Dose onoma\n");
scanf("%s", pin[i].fname);
printf("Dose epitheto\n");
scanf("%s", pin[i].lname);
printf("Dose arithmo mitroou\n");
scanf("%d", &pin[i].mnum);
printf("Dose ilikia\n");
scanf("%d", &pin[i].employ.age);
printf("Dose upsos\n");
scanf("%f", &pin[i].employ.h);
printf("Dose fulo\n");
scanf(" %c", &pin[i].employ.sex);
return pin[i];
}发布于 2015-07-23 00:36:47
您是close:而不是声明一个数组,在数组中您在结束时使用单个元素,从而导致崩溃,而是声明一个单独的结构:
struct melos diavasma(int i)
{
struct melos pin;
printf("Dose onoma\n");
scanf("%s", pin.fname);
printf("Dose epitheto\n");
scanf("%s", pin.lname);
printf("Dose arithmo mitroou\n");
scanf("%d", &pin.mnum);
printf("Dose ilikia\n");
scanf("%d", &pin.employ.age);
printf("Dose upsos\n");
scanf("%f", &pin.employ.h);
printf("Dose fulo\n");
scanf(" %c", &pin.employ.sex);
return pin;
}请注意,通过我现在是多余的。除非您计划在提示符中使用它,否则请考虑从函数的参数列表中删除它。
https://stackoverflow.com/questions/31576205
复制相似问题