//double ***m_pDeepH;
//m_nMBC=1000
//m_nIM=100
//m_nJM=100
if(m_pDeepH==NULL)
{
m_pDeepH=new double**[m_nMBC+1];
for(int k=1;k<(m_nMBC+1);k++)
{
m_pDeepH[k]=new double*[m_nIM+1];
or(i=1;i<(m_nIM+1);i++)
{
m_pDeepH[k][i]=new double[m_nJM+1];
for(j=1;j<m_nJM+1;j++)
{
m_pDeepH[k][i][j]=0.0;
}
}
}注意,以下释放出现问题,当k=2的时候,提示错误指针内容为空
if(m_pDeepH!=NULL)
{
for(int k=1;k<(m_nMBC+1);k++)
{
for(int i=1;i<(m_nIM+1);i++)
{
delete []m_pDeepH[k][i];
m_pDeepH[k][i]=NULL;
} delete []m_pDeepH[k];
m_pDeepH=NULL;
}
delete []m_pDeepH;
m_pDeepH=NULL;
}
//m_nMBC=1000
//m_nIM=100
//m_nJM=100
if(m_pDeepH==NULL)
{
m_pDeepH=new double**[m_nMBC+1];
for(int k=1;k<(m_nMBC+1);k++)
{
m_pDeepH[k]=new double*[m_nIM+1];
or(i=1;i<(m_nIM+1);i++)
{
m_pDeepH[k][i]=new double[m_nJM+1];
for(j=1;j<m_nJM+1;j++)
{
m_pDeepH[k][i][j]=0.0;
}
}
}注意,以下释放出现问题,当k=2的时候,提示错误指针内容为空
if(m_pDeepH!=NULL)
{
for(int k=1;k<(m_nMBC+1);k++)
{
for(int i=1;i<(m_nIM+1);i++)
{
delete []m_pDeepH[k][i];
m_pDeepH[k][i]=NULL;
} delete []m_pDeepH[k];
m_pDeepH=NULL;
}
delete []m_pDeepH;
m_pDeepH=NULL;
}
if(m_pDeepH!=NULL)
{
for(int k=1;k<(m_nMBC+1);k++)
{
for(int i=1;i<(m_nIM+1);i++)
{
delete []m_pDeepH[k][i];
m_pDeepH[k][i]=NULL;
} delete []m_pDeepH[k];
m_pDeepH=NULL; //!!!!!!!!这里错啦!!!!!!!改:m_pDeepH[k]=NULL;
}
delete []m_pDeepH;
m_pDeepH=NULL;
}