Я получил ошибку сегментации (дамп ядра) в 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;
}
````