首页 > 代码库 > C++了解free和delete(转自:http://www.cnblogs.com/mrye/archive/2012/09/01/2667079.html)
C++了解free和delete(转自:http://www.cnblogs.com/mrye/archive/2012/09/01/2667079.html)
void MyMethod1() { using namespace std; int a=6; int b=6; int * pa= new int ; int * pb= new int ; *pa=a; pb=pa; cout<< "pa的内容赋值为:" <<a<<endl; delete (pa); //free(pa);//加上这句造成pa不可用, //cout<<"free(pa);之后试试能不能读取pa:"<<pa<<endl;//实验证明会挂掉程序 //cout<<"free(pa);之后试试能不能读取a:"<<a<<endl;//实验证明会挂掉程序 cout<< "pa的内容:" <<*pa<<endl; cout<< "pa的地址:" <<pa<<endl; cout<< "pb的内容:" <<*pb<<endl; cout<< "pb的地址:" <<pb<<endl; *pb=b; cout<< "pb的内容赋值为:" <<b<<endl; cout<<endl; cout<< "pa的内容:" <<*pa<<endl; cout<< "pa的地址:" <<pa<<endl; cout<< "pb的内容:" <<*pb<<endl; cout<< "pb的地址:" <<pb<<endl; Sleep(1000); //蛋疼的我测试下休眠函数 } /* delete 是把一段内存标记为可用(没被占用) free 会释放这段内存(清空) free之后内存不能访问,因为没有内容 delete 之后还能访问,但是不能确定内容 */ int main( int argc, char * argv[]) { MyMethod1(); return 0; } |
C++了解free和delete(转自:http://www.cnblogs.com/mrye/archive/2012/09/01/2667079.html)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。