想到一个内存申请和释放的比喻
千树之影 2013-11-14 11:16:46 希望能让看了这个帖子的人不要再问“内存释放了为什么还能使用”类似问题了。
int* p=new int[10]; //你向房东租了间房子,房东给你一把钥匙p
p[0]=1234; //你开始使用这间房子,扔了一堆你的东西
delete[] p; //你向房东退房了
//p=NULL; //你把钥匙还了,如果没有这句就是你没还钥匙
cout <<p[0]; //你明明退了房子,但没有还钥匙。然后还用这把钥匙开门进去。
//这时有三种结果:(1)房子还是老样子,你扔的东西都还在,就像你没退房一样
// (2) 房子已经被房东收拾过了,你的东西被扔掉了。
// (3) 房子已经被租给其他人了,你被当做小偷暴打了一顿。
最后,请记住:退房记得还钥匙。