什么是野指针?如何避免野指针?
2016-07-15 20:35
375 查看
野指针不是 NULL指针,它是随即指向一块内存的指针。野指针是很危险的,会导致内存泄漏,if语句对它不起作用。
导致野指针的原因有两种:
(1)野指针指向了一块没有访问权限的内存。(即指针没有初始化)
(2)野指针指向了一个已经释放的内存。
因为野指针是因为我们的不良编程习惯造成的,所以我们养成良好的编程习惯才能尽可能避免野指针的出现。下面是一些好的编程习惯:
首先,尽量将指针初始化为NULL,用完后也可以将其赋值为NULL。因为NULL代表0地址,0地址不能进行操作。这样做在代码出现段错误时,有利于找到错误并修改。
其次,使用malloc分配内存。(在堆空间内分配)分配后要进行检查是否分配成功,最后要进行释放内存。
导致野指针的原因有两种:
(1)野指针指向了一块没有访问权限的内存。(即指针没有初始化)
(2)野指针指向了一个已经释放的内存。
因为野指针是因为我们的不良编程习惯造成的,所以我们养成良好的编程习惯才能尽可能避免野指针的出现。下面是一些好的编程习惯:
首先,尽量将指针初始化为NULL,用完后也可以将其赋值为NULL。因为NULL代表0地址,0地址不能进行操作。这样做在代码出现段错误时,有利于找到错误并修改。
其次,使用malloc分配内存。(在堆空间内分配)分配后要进行检查是否分配成功,最后要进行释放内存。
相关文章推荐
- 如何组织构建多文件 C 语言程序(二)
- 关于指针的一些事情
- 如何写好 C main 函数
- Lua和C语言的交互详解
- C# Pointer指针应用实例简述
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C和指针小结(推荐)
- C语言中fchdir()函数和rewinddir()函数的使用详解
- C语言内存对齐实例详解
- C语言编程中统计输入的行数以及单词个数的方法
- C语言自动生成enum值和名字映射代码
- C语言练习题:自由落体的小球简单实例
- 使用C语言判断英文字符大小写的方法
- c语言实现的带通配符匹配算法
- C语言实现顺序表基本操作汇总
- C语言中进制知识汇总
- C语言判断一个数是否是2的幂次方或4的幂次方