昨天晚上躺下想起了用new运算符在堆上分配了空间以后释放的问题。
最近的笔记里用到不少new分配的地方,比如char* ch = new char[100]之类。在释放空间的时候我用的是delete ch; ch = NULL;
可是delete [] p; 这种写法是在什么时候呢?
今天看了看书,才知道真的错了
///////////////////正确的写法//////////////////////////////////////////////////
char* ch = new char[100];
//memset(ch, '\0', sizeof(char) * 100);
//codes
delete [] ch;
ch = NULL;
///////////////////正确的写法//////////////////////////////////////////////////
char* ch = new char('c'); //分配一个char型大小的空间并且初始化值为'c'
//codes
delete ch;
ch = NULL;
///////////////////正确的写法//////////////////////////////////////////////////
int* pNum = new int;
//codes
delete pNum;
pNum = NULL;
NOTE: 一定要牢记!