我在使用new来申请内存时遇到一问题如下:
///////////////////////////申请内存
char** ch = new char*[100];
for(int i = 0; i < 100; i ++)
{
ch[i] = new char[256];
}
////////////////释放内存
for( i = 0 ; i < m_nNodeMea; i ++ )
{
if(ch[i] != NULL )
delete[] ch[i];
ch[i] = NULL;
}
if(ch != NULL)
delete[] ch;
ch = NULL;
上面是可以执行
但如果我把
char** ch = new char*[100];
改为
char** ch = (char**)new char[100];
就出错。
把char改为double则两种方法都可以释放。
不知为何,望指教!!!