【发布时间】:2019-05-30 15:26:09
【问题描述】:
我正在尝试将带有数组的简单结构写入文件,然后读取它。它适用于小于 25 的小数组,但由于某种原因,之后的所有数据都没有初始化;
typedef struct TestStruct {
int data[30];
} TestStruct;
TestStruct *test = malloc(sizeof(TestStruct));
for (int i = 0; i < 30; i++)
{
test->data[i] = i;
}
const char *filename = "some.txt";
FILE *file = fopen(filename, "w+");
fwrite(test, sizeof(TestStruct), 1, file);
rewind(file);
TestStruct *test2 = malloc(sizeof(TestStruct));
int rc = fread(test2, sizeof(TestStruct), 1, file);
这段代码的结果是rc = 0,索引25之后的整数由于某种原因没有被初始化。谁能解释问题出在哪里?
【问题讨论】: