码迷,mamicode.com
首页 > 编程语言 > 详细

C++了解free和delete(转自:http://www.cnblogs.com/mrye/archive/2012/09/01/2667079.html)

时间:2014-08-26 19:36:06      阅读:294      评论:0      收藏:0      [点我收藏+]

标签:blog   http   color   os   ar   div   html   log   sp   


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)

标签:blog   http   color   os   ar   div   html   log   sp   

原文地址:http://www.cnblogs.com/yongwangzhiqian/p/3938016.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!