这个功能给我的程序一个核心转储,我不知道为什么

时间:2019-11-03 12:42:18

标签: c pointers io fopen singly-linked-list

我的其他函数运行正常,但是一旦我调用此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;
        }

我希望程序简单地读取文件,该函数采用双指针和字符串数组(文件名),并且应该从文件,帐号,名称,地址和存储中读取在链接列表中。

0 个答案:

没有答案
相关问题