下面是我的程序中的一段代码。在第一个循环中输入name
和age
后,我收到了错误Segmentation fault (core dumped)
。分段错误(核心转储)
#include<stdio.h>
#include <string.h>
struct Cricketer
{
char name[25];
int age;
float avg_run;
};
int main(){
struct Cricketer c[3];
int i,j;
for (i=0 ; i<3;i++){
printf("Enter name: \n");
scanf("%s",c[i].name);
printf("Enter age: \n");
scanf("%d",c[i].age);
printf("Enter average run: \n");
scanf("%f",c[i].avg_run);
}
return 0;
}
而我找不到是什么导致此程序。
不,它不是崩溃的'gcc'(*编译器*)。当你运行它时,它就是你的程序。至于如何解决它,你首先使用调试器来定位它发生的程序的位置。请阅读Eric Lippert撰写的[如何调试小程序](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)。 –
那么你的问题“你如何调试核心转储?”如果是这样,你应该说明你的平台和/或你喜欢的调试器。 –
编译所有警告和调试信息:'gcc -Wall -Wextra -g'。然后**使用调试器'gdb' **。你修复我的代码问题是脱离主题。 –