int * p = new int;
delete p;释放的到底是p指向的这块内存里面的内容(即这块内存依然存在,只是内容清空了),还是这块内存被销毁了
既不是清空也不是销毁
首先销毁就扯淡了,多销毁几次你8G内存剩4G了,再销毁没了,就离谱
也没有清空,数据其实还在里面
所谓释放,就是告诉系统可以把内存重新分配给别的变量了,此时所有指向这个内存的指针都变成了野指针
-=-=-=-=
打个比方,你的房子租出去了,租约到期了
此时房子并没有被销毁,也没有清空,只不过随时会有新的客人住进来,里面所有物品随时可能会发生变化
delete p 是释放内存,表示内存被销毁
delete命令指示释放了那个指针原本所指的那部分内存而已。被delete后的指针p的值(地址值)并非就是NULL,而是随机值,p指向的这块内存里面的内容也没变,只是失去意义了。
会释放p所指向的内存。而这里p为一自动变量,其本身在程序退出其作用域时销毁。