(转自: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;
}
|