首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

CArray:Add() 神奇的访问冲突有关问题

2012-03-21 
CArray::Add() 神奇的访问冲突问题测试代码大致如下——C/C++ codeclass CTest{public:CTest(){}virtual ~C

CArray::Add() 神奇的访问冲突问题
测试代码大致如下——

C/C++ code
class CTest{public:    CTest(){};    virtual ~CTest(){};public:    CString m_csID;    CString m_csName;};CArray<CTest, CTest&> atest;CTest test;atest.Add(test);int nSize = atest.GetSize();    CArray<CTest, CTest&> atestMy;for (int i = 0; i < nSize; i++){    atestMy.Add(atest.GetAt(i));}


这段代码没报错。但是假如把“CArray<CTest, CTest&> atestMy;”作为对话框类的成员,那么在执行“atestMy.Add(atest.GetAt(i));”的时候会报错,报错位置——

C/C++ code
AFX_INLINE INT_PTR CArray<TYPE, ARG_TYPE>::Add(ARG_TYPE newElement){ INT_PTR nIndex = m_nSize; // 注意是这一句。注意,真的是这一句报的哦。。    SetAtGrow(nIndex, newElement);    return nIndex; }


报出“XXX.exe 中的0x0048f656 处未处理的异常: 0xC0000005: 读取位置 0x0000020c 时发生访问冲突”

求解,谢谢!

[解决办法]
恭喜LZ
[解决办法]
原来楼主是来散分的。
[解决办法]
lz要有耐心、细心
发帖时你会更仔细考虑提出的问题
很显然 错误0xC0000005 一般是访问了未初始化的指针

热点排行