有點幫助嗎? 我很確定答案一定是愚蠢的,但我不明白爲什麼我的scanf後會出現分段錯誤。我在我的代碼一直盯着現在很長一段時間:scanf指針分段錯誤
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct Student{
int grade, id;
struct Student *next;
}student;
student *initialize(){
return NULL;
}
int main(){
student *init;
student *nxt;
student *actual;
int resp;
init = (student*)malloc(sizeof(student));
init = initialize();
actual = init;
while(1){
printf("type grade:\n");
scanf("%d", &actual->grade);
printf("type id:\n");
scanf("%d", &actual->id);
printf("wanna continue? (1-YES e <other>-NO)\n");
if(resp==1){
actual->next=(student*)malloc(sizeof(student));
nxt=actual->next;
}else
break;
}
actual->next=NULL;
return 0;
}
沒什麼大不了的,對不對?有一個結構,我想掃描一個值。在我的終端上,我得到:
type grade:
3
Segmentation fault (core dumped)
有什麼想法?
嘗試'scanf函數(「%s」,actual.grade)'而不是 –
您在初始化時將init的值設置爲NULL。 – bruceg
爲什麼在初始化後將init設置爲null,返回NULL ... – t0mm13b