2 xujian2521 xujian2521 于 2014.11.17 17:48 提问

VS2010 C++ XML分析时用IXMLDOMNodePtr传参给函数会发生内存错误~
c++

举例代码如下:
CString m_strXMLData = "";
CString m_strXMLContents = "";
CString strFileName = "1.xml";
_bstr_t bstrFileName;
bstrFileName = strFileName.AllocSysString();
variant_t vResult;
vResult = m_plDomDocument->load(bstrFileName);
MSXML2::IXMLDOMElementPtr p= m_plDomDocument->documentElement;
MSXML2::IXMLDOMNamedNodeMapPtr s= sda->attributes;
int length = p->childNodes->length;
MSXML2::IXMLDOMNodePtr node;
for (int i = 0; i < length; i++)
{
node = p->childNodes->item[i];
GetNames(node);
}
//函数GetNames如下
GetNames(MSXML2::IXMLDOMNodePtr node)
{
int i = node->childNodes->length;
}
在调用这个函数时会出现内存错误
0x6833b1b8 处有未经处理的异常: 0xC0000005: 读取位置 0x00000000 时发生访问冲突
请问为何会出现这样的问题~~

1个回答

max_min_
max_min_   Rxr 2014.11.18 10:51

节点访问之前判断是否有有效的地址

xujian2521
xujian2521 若在本函数中执行就是可以的,但是如果传参给函数的话就会出现错误,不知道为什么~
大约 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!