fread读取文件乱码问题
使用fread读取一个本地文件,该文件包含了一个链表数据。其中COMIC是一个结构体(宏定义)、fp是文件指针,head,p_1,p_2是结构体指针。
以下为读取本地文件的函数(局部)
程序代码:
p_1 = malloc(sizeof(COMIC)); p_2 = malloc(sizeof(COMIC)); head = p_1; while(!feof(fp)) { p_2->next = p_1; p_2 = p_1; fread(p_1,sizeof(COMIC),1,fp); p_1 = malloc(sizeof(COMIC)); } p_2->next=NULL; return head;输出的结果前面部分正常,后面的节点却出现了问题。
倒数第二个节点实际上指向了 p_1 = malloc(sizeof(COMIC)) 分配的空间(猜测),然后这个空间的下一个节点才指向NULL。
要怎么样才能正确的读取一个二进制文件呢?
[ 本帖最后由 FireRabbit 于 2014-12-21 10:34 编辑 ]