c语言中program received,C语言报错program received signal sigsegv,求大神指点,谢谢!...

#include

#include

#include

#include

#include

struct student {

char name[100];

float score;

int age;

};

int input(int , student *);

int output(int , student *);

int format(int , student *);

int main()

{

int len , i = 0 ;

struct student *PArry;

printf("Please input len : ");

scanf("%d" , &len) ;

PArry = (struct student *)malloc(sizeof(struct student)*len);

if(NULL == PArry) //判断内存是否分配成功

{

printf("Ram allocation fail !");

exit(1);

}

printf("size = %d\n" , sizeof(PArry));

printf("size1 = %d\n" , sizeof(int));

input(len,PArry);

free(PArry);

return 0;

}

int input(int j ,student *PA)

{

int i = 0 ;

printf("i = %d j = %d\n " ,i , j);

format(j , PA);

printf("\n\n");

output(j , PA);

}

int output(int j ,student *PAr)

{

int i = 0 ;

printf("\n***********************\nThe student message: \n");

for(i = 0 ; i < j ; ++i)

{

printf("j2 = %d\n : " , j);

printf("Num %d of students messgae: \n" , i + 1);

printf("Age: %d\n" , PAr[i].age);

printf("Score: %.2f\n" , PAr[i].score);

printf("Name: %s\n" , PAr[i].name);

printf("*********************\n\n");

}

return 0;

}

int format(int k , struct student *PAR)

{

int i = 0 ;

printf("\n");

fflush(stdin);

for(i = 0 ; i < k ; ++i)

{

printf("Please intput num %d Student Message : \n" , i + 1);

fflush(stdin);

printf("k = %d i = %d\n" , k , i);

printf("age = ");

while((scanf("%d" , &PAR[i].age)) != 1)

{

fflush(stdin);

printf("\n ");

printf(" Type Date Error , Please input again . \n");

printf("\n");

printf("age = ");

}

printf("Age = %d\n" , PAR[i].age);

printf("score = ");

fflush(stdin);

while((scanf("%f" , &PAR[i].score)) != 1)

{

fflush(stdin); printf("\n ");

printf(" Type Date Error , Please input again . \n");

printf("\n");

printf("score = ");

}

printf("score = %f\n" , PAR[i].score);

printf("name = ");

fflush(stdin);

while((scanf("%s", PAR[i].name)) != 1)

{

fflush(stdin);

printf("\n ");

printf(" Type Date Error , Please input again . \n");

printf("\n");

printf("name = ");

}

printf("name = %s\n" , &PAR[i].name );

fflush(stdin);

printf("\n\n");

}

}

0dd21089f55487e0abb3b4cd64632fa0.png

追问

首先感谢你对着我的代码敲了一遍,辛苦了。我粘贴的时候显示都是图片上的格式,上传以后就不能正常显示了,我也很纠结,特意重发了一次,然后又百度了一次,没有解决方案,才有的截图的。

PArry = (struct student *)malloc(len * sizeof(struct student *));这一句有错误;

分配的内存是结构体指针类型;

你说这个地方有问题,那我该怎么改呢,谢谢,在线等!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值