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