大家都知道对于对象数组的释放时应该应用delete []pos
比如:
MyStruct * pms = new MyStruct[3];
//...
delete []pms;
可是不知道怎么的以前我写代码时对于字符串指针的释放一直都是
char *pc = new char[32];
//...
delete pc;
而遗憾的是我一直没有意识到这个问题,今天终于在一位高手的指点之下找出了这个潜藏在我大脑中许久的BUG。感觉好极了!
在这里向这位给我指出错误的大师致谢!
下面是我从MSDN获得的一段代码,写的是很清楚的,再次印证了我很久以来的“习惯性错误”。
int main()
{
char* pCharArray = new char[256]; // Allocate memory for the array
strcpy(pCharArray, "Array of characters");
delete [] pCharArray; // Deallocate memory for the array
pCharArray = NULL;
}
评论