悬垂指针与野指针

当所指向的对象被释放或者收回,但是对该指针没有作任何的修改,以至于该指针仍旧指向已经回收的内存地址,此情况下该指针便称悬垂指针(也叫迷途指针)。

某些编程语言允许未初始化的指针的存在,而这类指针即为野指针

计算机生成了可选文字:int f (int i) char *dp; / k dp is a wild pointer k / scp is not a wild pointer: static variables are initialized to O at start and retain their values from the last call afterwards . Using this feature may be considered bad style if not comraented k/ static char *scp;

dp 是一个野指针。scp不是一个野指针:静态变量一开始被初始化为0,从最后一次调用后保持着它们的值。如果没有注释,使用这个特性也许被视为不良风格。

在更多结构化的解决方案中,一种流行的避免悬垂指针的技术是使用智能指针。一个智能指针通常使用引用技术来收回对象。还有些技术包括 tombstones 方法和 locks-and-keys方法。

 

注意:野指针不是NULL指针,虽然指针未初始化则指向的是未知地址

未初始化情况:

局部普通指针变量地址不确定

局部static指针变量地址为NULL

全局指针变量地址为NULL

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值