宿題用の C アプリを開発していますが、迷惑なクラッシュに直面しています。これが私のコードです:
#include <stdio.h>
#include <stdlib.h>
//Constants
//Available user choices
enum commands {READ_LIST = 1, QUIT};
struct student {
char* surname;
char* name;
char* group;
};
typedef struct student Student;
typedef Student * studentPtr;
//Globals
int studentCount = 0;
//Function declarations
void displayCommands();
void readList();
//Main function
int main() {
char enteredValue[999];
int thisCommand;
int running = 1;
while(running) {
displayCommands();
scanf("%s", enteredValue);
thisCommand = atoi(enteredValue);
puts("\n----------------------------------------------");
switch(thisCommand) {
case READ_LIST:
readList();
break;
case QUIT:
running = 0;
break;
default:
puts("Wrong command!");
break;
}
}
system("pause");
return 0;
}
void displayCommands() {
puts("\n---------------------------------------------");
puts("Enter a command number:");
printf("%d - Read students from file.\n", READ_LIST);
printf("%d - Quit.\n", QUIT);
puts("----------------------------------------------");
}
void readList() {
FILE *fp = NULL;
fp = fopen("studs.txt", "r");
studentPtr newStudentPtr = malloc(sizeof(Student));
if(fp != NULL) {
fscanf(fp, "%d", &studentCount);
if(newStudentPtr != NULL) {
fscanf(fp, "%s %s %s", newStudentPtr->surname,
newStudentPtr->name, newStudentPtr->group);
}
fclose(fp);
} else {
puts("Unable to open file for reading!");
}
}
基本的に、整数 ant 3 つの文字列を構造体に読み込もうとします。ファイルの最後の行を読み取ろうとすると、プログラムがクラッシュします。
何か助けてください。私はどんな間違いを犯していますか?
前もって感謝します!