读书人

从文件中读取结构引起指针异常有没有办

发布时间: 2012-02-26 20:19:43 作者: rapoo

从文件中读取结构引起指针错误有没有办法解决?
保存结构的文件可能被破坏致使保存其中的结构数据可能不完整,这时读取到此不完整的结构数据会引起内存指针错误,有没有办法避免或捕捉这个错误?

[解决办法]
你的思路不是和我前面提出的差不多,也不需要什么副本,直接把校验字段放在原来的结构中就行了,我那个绝对是可行的,因为网络协议中基本也就是这么做来保证报文的可靠性的,比如你的原始结构是这样:
typedef struct _test {
int a;
int b;
char* ptr;
}test;

那么,你应该做类似这样修改
typedef struct __chk {
test t;
int key;
}chk;

然后,在内存中处理数据时,使用test结构,当数据需要存储到文件中时,使用chk结构
并且,将整个t字段进行CRC计算出一个校验和,将该和存入key中,然后才将chk结构存入文件

读取的时候,读出chk结构后,做同样的处理,将t结构做CRC计算,得到校验和,将校验和与key
进行比较,不一样就说明异常了
[解决办法]
既然是效验就不可能完全不错!

你的结构数据里,校验不但验证,还验证数据的!
如果只验证结构本身,还是读出来,判断完在写入结构。。

读书人网 >VC/MFC

热点推荐