想到一个内存申请和释放的比喻
希望能让看了这个帖子的人不要再问“内存释放了为什么还能使用”类似问题了。
int* p=new int[10]; //你向房东租了间房子,房东给你一把钥匙p
p[0]=1234; //你开始使用这间房子,扔了一堆你的东西
delete[] p; //你向房东退房了
//p=NULL; //你把钥匙还了,如果没有这句就是你没还钥匙
cout <<p[0]; //你明明退了房子,但没有还钥匙。然后还用这把钥匙开门进去。
//这时有三种结果:(1)房子还是老样子,你扔的东西都还在,就像你没退房一样
// (2) 房子已经被房东收拾过了,你的东西被扔掉了。
// (3) 房子已经被租给其他人了,你被当做小偷暴打了一顿。
最后,请记住:退房记得还钥匙。
int* p=new int[10]; //你向房东租了间房子,房东给你一把钥匙p
p[0]=1234; //你开始使用这间房子,扔了一堆你的东西
delete[] p; //你向房东退房了
//p=NULL; //你把钥匙还了,如果没有这句就是你没还钥匙
cout <<p[0]; //你明明退了房子,但没有还钥匙。然后还用这把钥匙开门进去。
//这时有三种结果:(1)房子还是老样子,你扔的东西都还在,就像你没退房一样
// (2) 房子已经被房东收拾过了,你的东西被扔掉了。
// (3) 房子已经被租给其他人了,你被当做小偷暴打了一顿。
最后,请记住:退房记得还钥匙。
...全文
相关推荐
C语言内存池算法MTK任务内存申请和释放
C语言内存池算法MTK任务内存申请和释放C语言内存池算法MTK任务内存申请和释放C语言内存池算法MTK任务内存申请和释放C语言内存池算法MTK任务内存申请和释放C语言内存池算法MTK任务内存申请和释放
模拟内存申请与释放
java中用可变长数组模拟内存的申请与释放
用户编程中申请与释放内存
针对系统调用SBCK()申请得到的牛存区域进行管理,实现用户程序中申请/释放内存的过程
C++动态二维数组的申请、赋值、使用、释放以及作参数示例
C++动态二维数组的申请、赋值、使用、释放以及作参数示例
c++内存的动态申请与释放.pdf
c++内存的动态申请与释放 内存管理永远都是c++程序员应该关心的事



