Я писал программу для чтения шестнадцатеричных кодов из файла и передачи ее на другой чип через SPI. Я пытаюсь читать каждую строку из hexfile с помощью fgets, а затем разобрать его с помощью sscanf в Беззнаковое целочисленный массив формат hexfile выглядит следующим образом:Программа ввода-вывода файлов в C: Ошибка сегментации (сбрасывается ядром)
ff32
34dc
1234
32d4
....
int main (void)
{
FILE *fp1;
int i = 0;
fp1 = fopen("hexfile.txt", "r+");
char line[500];
unsigned int hex[40];
while (fgets(line, sizeof(line), fp1) != NULL) {
while (sscanf(line, "%x", &hex[i]) == 1) {
printf("%4x \n", hex[i]);
i++;
}
}
fclose(fp1);
return 0;
}
Ошибка: Сегментация Fault (ядро сбрасывали) Что я знаю примерно результаты при попытке разыменования указателя NULL. Но что не так с моим кодом? Во-вторых, есть ли лучший способ читать из файла, используя другие функции ввода-вывода файлов без динамического распределения памяти?
Код возврата fopen не проверен. Испытание диапазона (<40) не выполняется внутри внутреннего контура. –