Я имею дело со структурами и указателями на символы (строки). Я хочу создать массив структур, и эти структуры имеют char*
и два int
s.
Я получаю ошибку сегментации при попытке fscanf
в array
и struct
с.
Вот соответствующая часть моего кода.
Struct Def
typedef struct {
char* title;
int gross;
int year;
} Movie;
Функция У меня возникают проблемы с
Movie* createArray(char *filename, int size)
{
FILE *f;
f = fopen(filename, "r");
Movie* arr = (Movie*) malloc(sizeof(Movie) * size);
if(!arr){printf("\nAllocation Failed\n"); exit(1);}
for (int i =0; i<size; i++){
fscanf(f, "%s %d %d", (arr+ i)->title, &arr[i].gross, &arr[i].year);
}
fclose(f);
return arr;
}
Чтобы добавить это в случае необходимости, вот как я вызываю функцию
Movie* arr = createArray(file1, records);