野指针与空指针
2013-07-03 11:42
274 查看
野指针是指没有进行初始化的、一种不正常的指针,空指针被NULL初始化,是一种正常的指针。
#include <stdio.>
int *p1;//全局对象默认初始化,所以p1是空指针
int main()
{
int *p2;//野指针
}野指针成因有三种:一、指针变量没有被初始化 ( 如上程序所示 );二、指针p被free或者delete之后,没有置为NULL; 三、指针操作超越了变量的作用范围,如函数返回指向该函数局部数据的指针。综合以上三条,所谓的野指针是指指向不可用内存的指针。
空指针是一种合法的指针,每种语言对空指针的赋值是不同的,对于C语言来说,只要赋值成NULL即可。空指针不指向任何数据,任何函数,所以系统中的任何数据任何函数的地址都不会是0。
进一步了解空指针可以参考:http://blog.sina.com.cn/s/blog_52e214770101gcye.html
#include <stdio.>
int *p1;//全局对象默认初始化,所以p1是空指针
int main()
{
int *p2;//野指针
}野指针成因有三种:一、指针变量没有被初始化 ( 如上程序所示 );二、指针p被free或者delete之后,没有置为NULL; 三、指针操作超越了变量的作用范围,如函数返回指向该函数局部数据的指针。综合以上三条,所谓的野指针是指指向不可用内存的指针。
空指针是一种合法的指针,每种语言对空指针的赋值是不同的,对于C语言来说,只要赋值成NULL即可。空指针不指向任何数据,任何函数,所以系统中的任何数据任何函数的地址都不会是0。
进一步了解空指针可以参考:http://blog.sina.com.cn/s/blog_52e214770101gcye.html
相关文章推荐
- 指针总结2
- void及void指针详解
- 转:简单类型指针的与复杂类型指针定义以及分配的问题
- C语言--指针函数和函数指针
- 指针和数组(c++primer)
- 第十六周项目二—字符串指针
- C++中this指针的本质
- c的二级指针
- 父类子类指针相互转换问题
- C语言指针专题——为何要学习指针
- C语言不用指针只用数组和移位操作将二进制转化为十进制IEEE32浮点数
- [转]C#指针复习示例
- js必备(2) 指针
- 一道关于返回指针和返回数组名的面试题
- 指针
- 老是空指针异常,改了好些遍,都没成功,大家帮我看一下吧
- 第16周项目2-用指针玩字符串(去除特定字符)
- C语言第12轮:指针
- 第八周项目 指向学生类的指针
- 野指针和避免野指针的方法