【发布时间】:2017-05-10 14:06:42
【问题描述】:
我一直在尝试从存储结构的二进制文件中读取数据,但是当文件被正确读取时,任何访问该结构的尝试都会导致访问冲突。 这是结构:
typedef struct Object {
const char *Description;
const char *Tag[20];
struct Object *Location;
struct Object *Destination;
} OBJECT;
这是用于读取文件的代码:
int ReadInDataFiles(OBJECT Objects[])
{
FILE *pObjectFile = NULL;
OBJECT TempObjects;
if (fopen_s(&pObjectFile, OBJECT_FILE, "rb") != 0)
{
printf("Error: external file cannot be opened.");
return 1;
}
else
{
fread(&TempObjects, sizeof(OBJECT), 1, pObjectFile);
for (int Count = 0; Count < NUMBER_OF_OBJECTS; Count++)
{
Objects[Count] = TempObjects;
fread(&TempObjects, sizeof(OBJECT), 1, pObjectFile);
}
fclose(pObjectFile);
}
【问题讨论】:
-
这需要更多细节,您是否将结构序列化为二进制文件?如果是,请向我们展示执行此操作的代码。是否可以创建MCVE ?
-
别担心,我试图在其中处理一些文件而忘记了我将其创建为链表。应该更多地关注代码的其余部分。