中易网

为什么这个程序向文件以二进制写入当前时间之后读取文件中的时间发生错误

答案:1  悬赏:0  
解决时间 2021-02-27 21:20
为什么这个程序向文件以二进制写入当前时间之后读取文件中的时间发生错误
最佳答案
get_data函数里的times是个野指针,要给它分配空间才行:
void get_data(void)
{
FILE *fp;

if((fp = fopen("data.bin", "rb")) == NULL)
printf("本程序第一次运行。
");
else {

struct tm *times=(struct tm*)malloc(sizeof(struct tm));  //要给times分配空间
fread(times, sizeof(int), 10, fp);

printf("上一次运行是在%d年%d月%d日%d时%d分%d秒。
",
times->tm_year + 1900, times->tm_mon + 1, times->tm_mday,
times->tm_hour, times->tm_min, times->tm_sec);
fclose(fp);
free(times);    //释放times
}
}函数malloc在头文件malloc.h里声明,开头加一句#include

追问:可以了,也就算说,一开始我定义的指针没有指向任何方向,但是能不能解释一下 (struct tm*)malloc(sizeof(struct tm)); 是什么意思, malloc这个我现在的教材里面没有讲到,所以不了解为什么这样做就算分配空间
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
中意商行地址有知道的么?有点事想过去
一首歌里的有句歌词是爱上我神神秘秘,全名
十一为什呢放7天假
我的诺基亚5130扬声器没声音了,咋办?
TONY翻译成汉语是什么意思
志刚冷荤店在什么地方啊,我要过去处理事情
猎豹cs10全车多长
谁帮忙下载下天天向商,我想做个背景图
万斯鞋脚感怎么样?是不是很容易开胶?
love love you2百度云或360云盘资源 泰国电影
这个HTC是什么品牌的?
丽丽日用品农家店地址在什么地方,想过去办事
奢简第六空间地址在哪,我要去那里办事
花城办公家具怎么去啊,有知道地址的么
布鲁斯KTV地址有知道的么?有点事想过去
推荐资讯
富商市场北门地址有知道的么?有点事想过去
双峰县杏子派出所我想知道这个在什么地方
求我的世界1.7.10Cauldron服务器核心 要自己
铭威包装机械公司我想知道这个在什么地方
杨集粮站在什么地方啊,我要过去处理事情
马云会在淘宝上买东西吗?马云有支付宝吧
小白兔的进化史三部曲能不能三部分开 zip我打
关于吸烟数据,例如多少从不吸烟、多少一天20
你发现你的好朋友对奶奶说话不礼貌,你想怎样
现在市面上哪款笔记本电脑最好
老婆要管我的钱,却在需要的时候不拿出来。
老板油烟机去油烟怎么样?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?