Мои другие функции работают нормально, но как только я вызываю функции readfile, у меня появляется код выхода / дамп ядра. Temp - указатель, указывающий на двойной указатель (сам связанный список). У меня ощущение, что ошибка где-то в первых 6 строках, потому что я уверен, что все остальное правильно.
Я пытался изменить свою стратегию в temp-> next и как я перемещаю указатель по списку, но, похоже, ничего не работает
while ( !feof(fp) && return_val == 0 ){
if ( temp != NULL ){
temp = malloc(sizeof(struct record));
temp->next = next;
next->next = NULL;
temp = temp->next;
}
fscanf(fp, "%*s %*s %d",&temp->accountno);
track = 0;
while ( track == 0 ){
ch = fgetc(fp);
if ( ch == '<'){
ch = fgetc(fp);
while ( ch != '>' ){
temp->name[ni] = ch;
ch = fgetc(fp);
ni++;
}
temp->name[ni] = '\0';
} else if ( ch == '['){
ch = fgetc(fp);
while ( ch != ']' ){
temp->address[ai] = ch;
ch = fgetc(fp);
ai++;
}
temp->address[ai] = '\0';
track = 1;
}
}
ni = 0;
ai = 0;
}
Я ожидаю, что программа простоПри чтении файла функция получает двойной указатель и строковый массив (имя файла), и она должна считывать из файла номер счета, имя и адрес и сохранять его в связанном списке.