Segmentation fault (core dumped),GDB调试问题出现在result函数入口处

李小嘉 发布于 2015/11/07 22:10
阅读 300
收藏 0
#include <stdio.h>
#include <stdlib.h>
#include <string.h>


struct student *result(struct student *stu);
void display_bast(struct student **stu);
char answer[10] = {'A', 'B', 'C','D','A', 'B', 'C','D','A','B'};
struct student
{
char count;
char name[32];
};


int main(int argc, char const *argv[])
{
struct student *stu[10];
int i = 0;
while(i < 10)
{
gets(stu[i]->name);
result(stu[i]);
i++;
}


display_bast(stu);
return 0;
}


struct student *result(struct student *stu)
{
int i;
char ch;
for(i=0; i<10; i++)
{
gets(&ch);


stu->count = ((strcmp(&ch, &answer[i])) ? 1 : 0);
stu->count += stu->count;

}


return stu;
}
void display_bast(struct student **stu)
{
int i;
for(i=0; i<10; i++)
{
if(stu[0]->count < stu[i]->count)
stu[0]->count = stu[i]->count;
}
printf("%s: %d\n", stu[0]->name, stu[0]->count);
}
加载中
0
大梦1107
大梦1107

前面说话语气不好,重说一下。

stu->count = ((strcmp(&ch, &answer[i])) ? 1 : 0);

这个编码风格不好。字符比较直接用'=='就可以。

李小嘉
李小嘉
今天早上我把错误改过来了,还是很感谢您的指点
返回顶部
顶部