在delete时的一些错误

类别:VC语言 点击:0 评论:0 推荐:

我在使用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则两种方法都可以释放。

不知为何,望指教!!!


 

本文地址:http://com.8s8s.com/it/it725.htm