一个 BUG

最近编程过程中遇到的一个BUG.

 首先我来描述一下,这个BUG是CString类的使用引起的,在编程过程中有个默认的规则,就是CStirng, std::string这种变长的数据类型是不可以做为模块参数进行传递和调用, 因为会引起崩溃, 这种情况我
也遇到过,但是这个错误并不是因为做为模块参数而引起的,而是因为包含Cstring 的结构体,在类定义时,

成员变量的顺序引起的,也就说将包含CSting类的结构体放在某个变量(这个变量是一个指针连表)前时,会出错,而放变量的后面就不出错,原因是因为包含CString类的结构体在一个线程中进行了修改,因为CString类是变长的,所以写入了大量的数据。使得CString类的地址覆盖了,它前面变量的地址,所以在程序退出时,删除错误的指针地址,造成崩溃。
Posted on 2010-06-08 13:35 郑兴锋 阅读(263) 评论(4)   编辑  收藏 引用

你可能感兴趣的:(一个 BUG)