[问题] 以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