[問題] 以2進位打開檔案讀取4bytes整數

作者: mistel (Mistel)   2020-05-09 15:32:38
題目規定要開啟一個檔案,這個檔案的前4bytes是一個正整數 代表該檔案共有多少筆資料
小弟使用fread做這件事,結果一直報run time error
示意程式碼:
FILE *fp = fopen("in.dat", "rb");
int num_data[1];
fread(num_data, sizeof(int), 1, fp);
程式會在fread()就執行失敗,跳出程式
請問是為什麼?要如何改善呢?謝謝
附上:
https://codeshare.io/2WEeAb
作者: withoutshine (何必幫別人想那麼多)   2020-05-09 16:27:00
你有檢查過你的 fopen 回傳值嗎?
作者: cutekid (可愛小孩子)   2020-05-09 16:32:00
應該是錯在第 16 行的 malloc,不是錯在第 14 行因為第 16 行掛掉,所以第 15 行的 printtf 沒有結果讓原po 誤以為死在第 14 行的 fread您可以先不要 malloc,先看第 15 行的 datanum[0] 的值看看是不是太大,還是負數之類的如果不是掛在 malloc ,可能掛在第 21 行

Links booklink

Contact Us: admin [ a t ] ucptt.com