我在使用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则两种方法都可以释放。
不知为何,望指教!!!

|