免责声明:这是一项任务。我不是要求明确的代码。相反,我只是要求足够的帮助,我可以理解我的问题,并自己纠正。
我试图重新创造……
你定义了一个 char 缓冲区命名 str 保存数据,但是您从单独的内存中访问它 ar_hdr 结构命名 temp 。同样,您正在读取二进制数据作为字符串,因为嵌入的空值而会中断。
char
str
ar_hdr
temp
您需要读取二进制数据并进行更改 temp 成为指针 str 或直接阅读 temp 使用类似的东西:
ret=fread(&temp,sizeof(temp),1,stream);
(看看doco的恐惧 - 我的C太生锈了,无法确定)。确保检查并使用返回值。