6 个解决方案
#1
up
#2
用bt查一下,调用 _int_malloc 的最后一句你的程序语句是哪句。
那句有问题的可能性最大。
那句有问题的可能性最大。
#3
把出错的那段代码贴出来
#4
CQueue **m_pParent;
m_pParent=new CQueue*[m_nVertex-1];//错误就出在这里,我用GDB调试时WHERE显示出错地方
m_pParent[i]=new CQueue[nValueKind];
delete [] m_pParent[i];
delete [] m_pParent;
CQueue::CQueue()
{
m_pHead=NULL;
m_pLastAccess=NULL;
printf("constrction\n");
}
CQueue::~CQueue()
{
PQUEUE_ELEMENT pCur=m_pHead,pTemp;//The pointer of queue chain
while(pCur!=NULL)
{
pTemp=pCur->next;
delete pCur;
pCur=pTemp;
}
printf("free\n");
}
这是大概的代码意思,能看出什么错误来吗.
m_pParent=new CQueue*[m_nVertex-1];//错误就出在这里,我用GDB调试时WHERE显示出错地方
m_pParent[i]=new CQueue[nValueKind];
delete [] m_pParent[i];
delete [] m_pParent;
CQueue::CQueue()
{
m_pHead=NULL;
m_pLastAccess=NULL;
printf("constrction\n");
}
CQueue::~CQueue()
{
PQUEUE_ELEMENT pCur=m_pHead,pTemp;//The pointer of queue chain
while(pCur!=NULL)
{
pTemp=pCur->next;
delete pCur;
pCur=pTemp;
}
printf("free\n");
}
这是大概的代码意思,能看出什么错误来吗.
#5
CQueue **m_pParent;
m_pParent=new CQueue*[m_nVertex-1];//错误就出在这里,我用GDB调试时WHERE显示出错地方
m_pParent[i]=new CQueue[nValueKind];
delete [] m_pParent[i];
delete [] m_pParent;
没有看懂
m_pParent=new CQueue*[m_nVertex-1];
会不会m_nVertex值不对?
m_pParent[i]=new CQueue[nValueKind];
i 会不会超了 而且一般用个for
delete [] m_pParent[i];
delete [] m_pParent;
会不会 释放了 m_pParent后 释放m_pParent[i] 一般也应该用个for().
m_pParent=new CQueue*[m_nVertex-1];//错误就出在这里,我用GDB调试时WHERE显示出错地方
m_pParent[i]=new CQueue[nValueKind];
delete [] m_pParent[i];
delete [] m_pParent;
没有看懂
m_pParent=new CQueue*[m_nVertex-1];
会不会m_nVertex值不对?
m_pParent[i]=new CQueue[nValueKind];
i 会不会超了 而且一般用个for
delete [] m_pParent[i];
delete [] m_pParent;
会不会 释放了 m_pParent后 释放m_pParent[i] 一般也应该用个for().
#6
up
#1
up
#2
用bt查一下,调用 _int_malloc 的最后一句你的程序语句是哪句。
那句有问题的可能性最大。
那句有问题的可能性最大。
#3
把出错的那段代码贴出来
#4
CQueue **m_pParent;
m_pParent=new CQueue*[m_nVertex-1];//错误就出在这里,我用GDB调试时WHERE显示出错地方
m_pParent[i]=new CQueue[nValueKind];
delete [] m_pParent[i];
delete [] m_pParent;
CQueue::CQueue()
{
m_pHead=NULL;
m_pLastAccess=NULL;
printf("constrction\n");
}
CQueue::~CQueue()
{
PQUEUE_ELEMENT pCur=m_pHead,pTemp;//The pointer of queue chain
while(pCur!=NULL)
{
pTemp=pCur->next;
delete pCur;
pCur=pTemp;
}
printf("free\n");
}
这是大概的代码意思,能看出什么错误来吗.
m_pParent=new CQueue*[m_nVertex-1];//错误就出在这里,我用GDB调试时WHERE显示出错地方
m_pParent[i]=new CQueue[nValueKind];
delete [] m_pParent[i];
delete [] m_pParent;
CQueue::CQueue()
{
m_pHead=NULL;
m_pLastAccess=NULL;
printf("constrction\n");
}
CQueue::~CQueue()
{
PQUEUE_ELEMENT pCur=m_pHead,pTemp;//The pointer of queue chain
while(pCur!=NULL)
{
pTemp=pCur->next;
delete pCur;
pCur=pTemp;
}
printf("free\n");
}
这是大概的代码意思,能看出什么错误来吗.
#5
CQueue **m_pParent;
m_pParent=new CQueue*[m_nVertex-1];//错误就出在这里,我用GDB调试时WHERE显示出错地方
m_pParent[i]=new CQueue[nValueKind];
delete [] m_pParent[i];
delete [] m_pParent;
没有看懂
m_pParent=new CQueue*[m_nVertex-1];
会不会m_nVertex值不对?
m_pParent[i]=new CQueue[nValueKind];
i 会不会超了 而且一般用个for
delete [] m_pParent[i];
delete [] m_pParent;
会不会 释放了 m_pParent后 释放m_pParent[i] 一般也应该用个for().
m_pParent=new CQueue*[m_nVertex-1];//错误就出在这里,我用GDB调试时WHERE显示出错地方
m_pParent[i]=new CQueue[nValueKind];
delete [] m_pParent[i];
delete [] m_pParent;
没有看懂
m_pParent=new CQueue*[m_nVertex-1];
会不会m_nVertex值不对?
m_pParent[i]=new CQueue[nValueKind];
i 会不会超了 而且一般用个for
delete [] m_pParent[i];
delete [] m_pParent;
会不会 释放了 m_pParent后 释放m_pParent[i] 一般也应该用个for().
#6
up