下面是我的程序中的一段代碼。在第一個循環中輸入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' **。你修復我的代碼問題是脫離主題。 –