我的其他函数运行正常,但是一旦我调用此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;
}
我希望程序简单地读取文件,该函数采用双指针和字符串数组(文件名),并且应该从文件,帐号,名称,地址和存储中读取在链接列表中。