C++ 关于afxtempl.h 的错误

来源:百度知道 编辑:UC知道 时间:2024/08/23 15:18:31
报错说是afxtempl.h Line 766
该段代码是
template<class TYPE, class ARG_TYPE>
AFX_INLINE TYPE CList<TYPE, ARG_TYPE>::GetAt(POSITION position) const
{ CNode* pNode = (CNode*) position;//716行
ASSERT(AfxIsValidAddress(pNode, sizeof(CNode)));
return pNode->data; }

程序编译的时候没错,执行的时候报错了,这个一般是什么原因啊
报错信息就是:ERROR: <myfilename> afxtempl.h Line 766
然后下面三个按钮,中文意思分别是放弃,重试,忽略

那么就是断言false了,(AfxIsValidAddress(pNode, sizeof(CNode)))的返回值为false.

--------------------------------------
一般系统库文件是不会出错的.

至于在执行过程中,错误汇报指向库文件,说明你调用不对,很有可能是参数有问题,或者调用之前出现了拷贝出界等情况...

PS. 没给出具体的错误信息??

ASSERT断言,AfxIsValidAddress意思说pNode地址不对。你调用GetAt传的参数不对。