zoukankan      html  css  js  c++  java
  • C++了解free和delete

    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;
    }
    

      

  • 相关阅读:
    touch创建文件
    excel如何冻结首行或首列及首行首列同时冻结
    cd mkdir mv cp rm 命令目录相关操作
    months_between()用法
    sysdate()简单用法
    round()和trunc()用法
    length() 用法
    replace 用法
    orcl 中upper()和lower()和initcap()的用法
    orcl 复杂查询
  • 原文地址:https://www.cnblogs.com/mrye/p/2667079.html
Copyright © 2011-2022 走看看