C - 尝试读取文件时出现分段错误



我正在传入 argv[1] 作为文件名,我得到了一个段错误,但我不知道为什么。 我正在使用链表来保存包含 2 个字符和一个整数的汽车结构的实例。 我觉得问题出在我的 FSNF 语句中,但我不确定。

void readFile(List *north, List *east, List *south, List *west, char *fileName) {
    char *file = fileName;
    FILE *fp = fopen(file, "r");
    if(!fp) {
        printf("File could not be opened...");
        return;
    }
    while(!feof(fp)) {
        Car *temp = NULL; //Initialize a blank car
        fscanf(fp, "%s %s %d", &temp->direc, &temp->turn, &temp->time); //scan the direction path and time
        //into the Car Node
        //Add to North List
        if(temp->direc == 'N') {
            insertBack(north, temp);
        }
        //Add to East List
        if(temp->direc == 'E') {
            insertBack(east, temp);
        }
        //Add to South List
        if(temp->direc == 'S') {
            insertBack(south, temp);
        }
        //Add to West List
        if(temp->direc == 'W') {
            insertBack(west, temp);
        }
        else {
            printf("Something went wrong...");
            return;
        }
    }
    fclose(fp);
}

Car *temp = NULL; //Initialize a blank car

您不是在这里初始化"空白"汽车。temp变量只是NULL。在执行fscanf之前,请使用malloc分配空间:

Car *temp = malloc(sizeof(Car));

如果"空白"是指将分配的空间归零,请使用 calloc .

相关内容

  • 没有找到相关文章

最新更新