【发布时间】:2012-01-28 23:40:23
【问题描述】:
我正在尝试在我的小游戏中实现保存/加载功能。为了实现这一点,我有一个中心类,它存储游戏的所有重要变量,例如位置等。然后我将这个类作为二进制数据保存到文件中。然后只需将其加载回加载功能。这似乎在大多数情况下都有效,但是如果我更改某些内容然后尝试进行保存/加载,程序将因内存访问冲突而崩溃。那么,在程序的每次运行中,类是否保证在内存中具有相同的结构,或者数据是否可以像结构一样随机排列?
回应耶稣 - 我的意思是类中的数据,所以如果我将类保存到磁盘,当我加载它时,一切都会很好地恢复。
保存
fout.write((char*) &game,sizeof Game);
加载
fin.read((char*) &game, sizeof Game);
【问题讨论】:
-
你是指类内部的数据还是类指针的地址?
-
请定义您所说的“改变某些事情”是什么意思。您的意思是重新编译代码并进行更改?改变你运行程序的方式?使用相同的编译器(包括版本),在相同的架构上,使用相同的优化设置,在相同的代码上,从技术上讲,您应该在内存 AFAIK 中获得相同的结构。
-
我的意思是更改类中的数据值。不重新编译或任何东西。
标签: c++ class memory-management load