C++中的空指针,野指针

C++中的空指针,野指针

空指针不指向任何实际的对象或者函数。
反过来说,任何对象或者函数的地址都不可能是空指针。
空指针是一个特殊的指针,因为这个指针不指向任何地方。
这意味任何一个有效的指针如果和空指针进行相等的比较运算时,结果都是false。
在程序中,得到一个空指针最直接的方法就是运用预定义的NULL,这个值在多个头文件中都有定义。

C++中 NULL即为0.

空指针指向内存的什么地方

常见的空指针一般指向0地址,即空指针的内部用全0来表示(zero null pointer,零空指针);
也有一些系统用一些特殊的地址值或者特殊的方式表示空指针(nonzero null pointer,非零空指针)。

空指针的异常

1.调用NULL对象的方法,即一个对象还没有正常初始化,就先调用它的方法。
例:String s=NULL; int length=s.length;//发生空指针异常

2.当一个变量为NULL,只有变量名,并没有值,也没有分配内存,当对其取长度,会出现指针异常。(声明一个变量时最好给其分配好内存空间,给予赋值

3.变量为NULL,没有进行判断,直接使用。

4.尽量避免返回NULL,方法的返回值不要定义成为一般的类型,而是用数组。

野指针

野指针不是空指针,是一个指向垃圾内存的指针。
1.指针变量没有被初始化。
2.指针被free或者delete之后,没有设置为NULL,让人误以为这是一个合法指针。
3.指针操作超越了变量的作用范围。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值