StackElement *FirstSib=new StackElement; sprintf(FirstSib->ElementName,"NULL");
FirstSib->NodeIx=0;
FirstSib->position=0; StackElement *elemTmp=new StackElement;
sprintf(elemTmp->ElementName,XMLString::transcode(localname));
elemTmp->NodeIx=m_nodeIx;
elemTmp->position=SibilingStack.SearchPosition(elemTmp->ElementName);
DP.AppendPosition(elemTmp->position);// Insert a node into DTD and a data path node
if (!MyDTD.SearchName(MyDTD.GetCurrentNode(),elemTmp->ElementName))
{
++m_nodeIx;
m_DTDNode = new STRUCTDTD;
sprintf(m_DTDNode->Name,elemTmp->ElementName);
m_DTDNode->NodeIx=m_nodeIx;
m_DTDNode->Arity=0;
MyDTD.InsertNode(m_DTDNode);
MyDP.InsertNode(m_nodeIx);
char *ssTmp=DP.GetDP();
MyDP.InsertDP(m_nodeIx,ssTmp,m_ValueIx);
}
else // if there is node named ElementName, itis only to add a new data path
{
if (MyDTD.GetCurrentNode()->Arity<elemTmp->position)
MyDTD.UpdateArity(NULL,elemTmp->position);
unsigned int NodeIx=MyDTD.GetCurrentNode()->NodeIx;
MyDP.InsertDP(NodeIx,DP.GetDP(),m_ValueIx);
}// int parent=(ElemStack.Peek()).NodeIx;
// int priorSib=(SibilingStack.Peek()).NodeIx; SibilingStack.Push(elemTmp);
SibilingStack.Push(FirstSib); fElementCount++;
ElemStack.Push(elemTmp); if (FirstSib!=NULL)
{
delete FirstSib;
FirstSib=NULL;
} int ipos=elemTmp->position;
if (elemTmp!=NULL)
{
delete elemTmp;
elemTmp=NULL;
}在循环这断代吗3000次之后,
if (elemTmp!=NULL)
{
delete elemTmp;
elemTmp=NULL;
}
出错!
?????
FirstSib->NodeIx=0;
FirstSib->position=0; StackElement *elemTmp=new StackElement;
sprintf(elemTmp->ElementName,XMLString::transcode(localname));
elemTmp->NodeIx=m_nodeIx;
elemTmp->position=SibilingStack.SearchPosition(elemTmp->ElementName);
DP.AppendPosition(elemTmp->position);// Insert a node into DTD and a data path node
if (!MyDTD.SearchName(MyDTD.GetCurrentNode(),elemTmp->ElementName))
{
++m_nodeIx;
m_DTDNode = new STRUCTDTD;
sprintf(m_DTDNode->Name,elemTmp->ElementName);
m_DTDNode->NodeIx=m_nodeIx;
m_DTDNode->Arity=0;
MyDTD.InsertNode(m_DTDNode);
MyDP.InsertNode(m_nodeIx);
char *ssTmp=DP.GetDP();
MyDP.InsertDP(m_nodeIx,ssTmp,m_ValueIx);
}
else // if there is node named ElementName, itis only to add a new data path
{
if (MyDTD.GetCurrentNode()->Arity<elemTmp->position)
MyDTD.UpdateArity(NULL,elemTmp->position);
unsigned int NodeIx=MyDTD.GetCurrentNode()->NodeIx;
MyDP.InsertDP(NodeIx,DP.GetDP(),m_ValueIx);
}// int parent=(ElemStack.Peek()).NodeIx;
// int priorSib=(SibilingStack.Peek()).NodeIx; SibilingStack.Push(elemTmp);
SibilingStack.Push(FirstSib); fElementCount++;
ElemStack.Push(elemTmp); if (FirstSib!=NULL)
{
delete FirstSib;
FirstSib=NULL;
} int ipos=elemTmp->position;
if (elemTmp!=NULL)
{
delete elemTmp;
elemTmp=NULL;
}在循环这断代吗3000次之后,
if (elemTmp!=NULL)
{
delete elemTmp;
elemTmp=NULL;
}
出错!
?????
解决方案 »
- socket阻塞接收数据超时设置
- 单文档工程中响应编辑区文字改变的函数是哪个啊,该写在哪里啊?
- VC调用Matlab
- 那位大哥有控制扫描仪扫描图像的例子?
- 希望作过双input pin的filter同志给些提示
- 哥们!姐们!过年好!请问我一不小心换错图标,之后,为什么点ResouceView后出现"this file is opened in an editor".
- 请问如何定位一个停靠类型的工具栏?为什么每次运行我的停靠工具栏总是停在默认工具栏的左下方??
- 土问openGL作图问题
- 为什么要创建兼容DC呢
- 高分请教:为什么throw异常,捕获不了。详见帖子
- 数据转换问题?
- 求助:用CreateThread启动一个线程进行数据库查询在98中出现的问题
{
delete elemTmp;
elemTmp=NULL;
}
此句不安全.最好你每次显示的delete 之后:
(delete elemTmp;)
elemTmp=NULL;
然后 if (elemTmp!=NULL)
{
delete elemTmp;
elemTmp=NULL;
}