我很難找出seg故障的原因。我在GDB中進行了調試,它告訴我這條線給我帶來了麻煩,但我仍然無法弄清楚。作業分段錯誤。不知道爲什麼
Employee* readfile(FILE* file) {
Employee* newemployee;
char* tempsalary;
int salary;
char* name;
char* dept;
char line[128];
while(file != NULL) {
fgets(name, sizeof(line), file);
newemployee->name = strdup(name); // THIS IS WHERE THE SEGFAULT IS
fgets(dept, sizeof(line), file);
newemployee->department = strdup(dept);
fgets(tempsalary, sizeof(line), file);
sscanf(tempsalary, "%d", &salary);
newemployee->salary = salary;
}
return newemployee;
我試圖運行它的主程序應該打開文件,讀取行並創建一個Employee結構。它使用以前的函數打印結構。
int main() {
FILE* file;
file = fopen ("stest2.txt", "r");
Employee* employees[max_employees];
int i;
int c;
for (i = 0; i < max_employees; i++) {
employees[i] = readfile(file);
printEmployee(employees[i]);
}
}
我解決了導致seg錯誤的問題,但現在程序運行時沒有打印結果並結束。有任何想法嗎? – 2013-02-12 04:17:02