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