一些关于指针的常见错误
2016-11-30 18:59
218 查看
#include<iostream> using namespace std; struct P { int a; P *link; }; struct Q { int m; P * p; }; int main() { P A,B; A.a=1; B.a=2; P *p1= &A; P *p2= &B; p1->link=p2; /************************建时不置空的错误!********************************/ //p2->link=NULL; if(p2->link==NULL) cout<<"!!!"; //不输出 /************************删完不置空的错误!********************************/ delete p2; //p1->link=NULL; if(p1->link==NULL) cout<<"!!!"; //不输出 /************************不开空间就赋值的错误!********************************/ P *p3; //p3=new P; p3->a=3; //炸 /************************到底加不加引用?********************************/ P *p5=new P; p5->a=3; P *p4=p1; // P * & p4=p1; p4 = p5; cout<<p1->a; //是1 不是 3 /************************到底加不加引用?2********************************/ P *p5=new P; p5->a=3; P *p4=p1; // P * & p4=p1; p4->link= p5; cout<<p1->link->a; //这时没错 // p4确确实实指向了p1相同的空间,不传引用时只能改这片空间,而改不了p1! !! /************************到底加不加引用?(较复杂例子)********************************/ P *p5=new P; Q q1; P * p4=q1.p; // P *&p4=q1.p; p4=p5; cout<<q1.p->a; //炸 /************************到底加不加引用?(函数传参也一样) 略********************************/ }
相关文章推荐
- 关于java socket 一些常见错误的解决办法
- 关于真机调试的一些常见错误
- 关于使用google的data binding library的一些常见错误
- 关于java报空指针错误的几种常见情况
- 指针与字符串操作的一些常见错误
- 关于字符指针和字符数组的一些错误
- 关于redis的一些常见错误
- 关于在eclipse上搭建Genymotion模拟器的一些常见错误心得
- 关于eclipse中一些常见的错误01
- 关于vc6.0中常见的因为工程设置project setting设置不对而造成连接错误的一些情况和解决方法(转)
- 一些常见的面试的错误(做为面试人员的日常体验)
- 关于DALFactory无法反射创建类实例的常见错误说明
- 使用***版软件中常见的一些错误代码
- 关于 MSDTC 分布式事务两个常见错误
- 关于LNK2001错误的一些总结
- 关于EJB的一些常见问题(一)
- 关于LNK2001错误的一些总结
- 关于LNK2001错误的一些总结
- [错误记录]关于指针传递获得数据使用错误问题....
- 关于COM中智能指针的一些建议.