Я пытаюсь распределить массив указателей на структуры (каждая структура состоит из двух строк) и заполнить чтение массива из txt-файла, который выглядит следующим образом:
firma1 path1 firma2 path2 firma3путь3.,.
Я получаю исключение после вызова riempi_riga (file_firme [i], f1);Я должен передать один элемент моего массива в функцию, но, очевидно, что-то не работает.
Спасибо за помощь, с уважением
typedef struct {
char firma[50];
char path[100];
}riga;
void riempi_riga(riga*r, FILE* f1) {
fscanf(f1, "%s ", r->firma);
fscanf(f1, "%s\n", r->path);
return;
}
void stampa_riga(riga* r) {
printf("%s, %s\n", r->firma, r->path);
return;
}
int num_lines(FILE *f1) {
char c;
int lines = 0;
while ((c = fgetc(f1)) != EOF)
if (c == '\n')
lines++;
if (c != '\n')
lines++;
rewind(f1);
return lines;
}
int main() {
//riga* r1 =(riga*)malloc(sizeof(riga));
//printf("%d", sizeof(riga));
int i = 0;
FILE* f1;
f1 = fopen("C:\\Users\\d.foti\\Desktop\\firmaMD5.txt", "r");
if (f1 == NULL) {
printf("non sono riuscito ad aprire il file!\n");
return 0;
}
int num_righe = num_lines(f1);
riga** file_firme = (riga**)malloc(num_righe * sizeof(riga));
for (i; i < num_lines; i++)
riempi_riga(file_firme[i], f1);
//riempi_riga(r1, f1);
//stampa_riga(r1);
//fflush(f1);
if (fclose(f1) != 0)
printf("non sono riuscito a chiudere il file\n");
return 0;
}