我正在編寫一個程序,用於從文件讀取hexcode並通過SPI將其提供給另一個芯片。我試圖使用與fgets讀取來自hexfile每一行,然後使用分析它的sscanf成unsinged int數組的hexfile的格式如下:C:Segmention Fault中的文件I/O程序(核心轉儲)
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;
}
錯誤:分段錯誤(核心轉儲),我大致知道結果當您嘗試取消引用一個NULL指針。但是我的代碼有什麼問題?其次,是否有更好的方式使用其他文件I/O函數從文件中讀取而無需動態內存分配?
fopen返回代碼未經測試。範圍測試(<40)未在內部循環內完成。 – 2014-11-23 12:30:27