打印

关于指针释放

[复制链接]
1006|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gxgclg|  楼主 | 2013-8-30 18:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
假如有一个函数,目的是想安全的释放指针
SecureRelease(POINTER *p){
   if(p!=NULL)
     delete p;
}
为了防止错误的释放指针,怎么判断这里的p是引用还是指针;
//传入SecureRelease指针类型未知,假如如下情况发生,如何避免运行时错误
int a=5;
int *p=&a;
int *b=new int(5);
int *q=b;
//
SecureRelease(p);
SecureRelease(q);

相关帖子

沙发
pkat| | 2013-8-30 18:52 | 只看该作者
delete空指针是不会有问题的。楼主是想封装一下delete p; p = null;

其实我觉得没有必要

使用特权

评论回复
板凳
火箭球迷| | 2013-8-30 19:04 | 只看该作者
既然用c++,用域守卫可以解决这个问题
至于释放函数,只能自己配置,如果是堆分配的,释放函数可以是delete
或者类似的放函数

使用特权

评论回复
地板
baidudz| | 2013-8-30 19:14 | 只看该作者
SecureRelease(POINTER *p);
//这个接口只是针对手动动态分配的

使用特权

评论回复
5
txcy| | 2013-8-31 09:29 | 只看该作者
指针问题一直是老大难

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

177

主题

1653

帖子

1

粉丝