我有一个结构:
typedef struct codeKey_s {
unsigned char shortest;
unsigned char longest;
unsigned char lengths[256];
int table[256];
} codeKey_t;
正如您所看到的,我有静态大小的值类型数组。我的问题是当我保存,然后从二进制文件中读取它们两个数组都是空的。我看到其他人使用char *字符串进行此工作,那么是什么给出了?
以下是我的写/读语句:
fwrite(codeKey, sizeof (codeKey_t), 1, file);
codeKey_t* retCodeKey = (codeKey_t*)malloc(sizeof(codeKey_t));
fread(retCodeKey, sizeof(codeKey_t*), 1, readFile);
答案 0 :(得分:0)
来自TFM
On success, fread() and fwrite() return the number of items read or written.
你只是尝试过一次畏惧和fwrite;它不能保证他们在一个电话中完成。
另一个问题是时间 - 你是否在fwrite之后不久打开并查看文件,可能在关闭写文件句柄之前?如果是这样,您可能需要在读取之前刷新写文件句柄。
<强>更新强> 你打电话给fread错了
fread(retCodeKey, sizeof(codeKey_t*), 1, readFile);
将指针类型的大小传递给size
参数。