Ошибка сегментации при чтении файла в c в маленьком файле - PullRequest
0 голосов
/ 30 июня 2019

Я получил ошибку сегментации (дамп ядра) в c при чтении файла. Я использовал этот код для миллионов других файлов, и он работает нормально.Но этот файл имеет 138 строк, когда другие начинаются с 250. Так что я думаю, в чем проблема?(код находится в нижней части моего поста). Предполагается, что он поможет мне работать с прочитанными данными, чтобы я мог выполнять над ними операции в коде, но что бы я ни делал, он просто «выбрасывает ядро»

, он ломается здесь:

while (fgets(line, sizeof line, fp) != NULL) {
        strtok(line, "\n");
        parseLine(line, &dataList);
    }

я уже пробовал:

char *line = malloc( sizeof(char) * ( LINE_BUFFER + 1 ) 

вместо

 char line[LINE_BUFFER];

Вот часть кода, которая читает файл:

#define DIFF_BUFFER 99999999

DataLineNode *loadData(const char *fileName) {
    FILE *fp;
    char line[LINE_BUFFER];
    DataLineNode *dataList = NULL;

    fp = fopen(fileName, "r");
    if (fp == NULL) {
        printf("No file '%s'.\n", fileName);
        exit(EXIT_FAILURE);
    }

    while (fgets(line, sizeof line, fp) != NULL) {
        strtok(line, "\n");
        parseLine(line, &dataList);
    }
    fclose(fp);
    return dataList;
}

````


...