急:结构体中套结构体的指针数组内存释放问题
JJZHK 2007-05-28 04:37:59 结构体定义:
typedef struct tagCATALOGNODE
{
WCHAR *pwzCatalogID;
WCHAR *pwzCatalogName;
tagCATALOGNODE *pCatalogNode;
LONG lpChildLength; //兄弟节点个数
}CATALOGNODE;
释放函数我是用递归实现的。
void CInfoShareXCAPXMLParser::ReleaseCatalogNode(CATALOGNODE *pChildNode)
{
int i;
i = 0;
while (i<= (pChildNode + i)->lpChildLength)
{
if (NULL != (pChildNode + i)->pCatalogNode)
{
ReleaseCatalogNode((pChildNode + i)->pCatalogNode);
}
if (NULL != (pChildNode +i)->pwzCatalogID)
{
delete[] (pChildNode +i)->pwzCatalogID;
(pChildNode +i)->pwzCatalogID = NULL;
}
if (NULL != (pChildNode + i)->pwzCatalogName)
{
delete[] (pChildNode)->pwzCatalogName;
(pChildNode + i)->pwzCatalogName = NULL;
}
if (i == (pChildNode + i)->lpChildLength)
{
delete[](pChildNode);
//pChildNode = NULL;
}
i++;
}
}
程序运行到最里面的子节点就死了,帮我看看问题出在哪里?