由于使用new创建的内存空间不会被系统自动释放,因此假如你不去释放它,那么该区域的内存将始终不能为其他数据所使用,而指向该内存的指针是个局部变量,当定义该指针的函数结束并放回时,该指针消失,那么我们就再也找不到该块的内存区域,就好像丢失了这块内存一样,我们把这种情况叫做内存泄漏。
因此假如不需要一块内存空间,就必须对指向它的指针使用关键字delete。
int * p = new int;
delete p; // 这里只是删除了指针变量p指向的内存空间,没有删除指针变量p
p = 0; // 让指针变量p 成为空指针,防止再次delete p 引发错误,删除空指针是安全的
注释:红色字体是注意的哦~