野指针概念、定义、及如何规避野指针
野指针
野指针的概念:
野指针就是指针指向的位置不可知的。(随机的、不正确的、没有明确限制的)
野指针的三种情况
1、指针未定义
#include <stdio.h>
int main()
{int* p; //局部变量指针未初始化,默认就是随机值*p=10;return 0;
}
2、指针越界访问
#include <stdio.h>
int main()
{int arr[10]={0];int* p=arr;for(int i=0;i<12;i++){*p++=i;}return 0;
}
这里数组的大小为10,就会发生数组越界。
3、指针指向的空间释放
int* test()
{int a=10;return &a;
}
int main()
{int* p=test();printf("%d\n",*p);return 0;
}
如何规避野指针:
1、指针初始化 (如果没有就初始化为NULL)
2、小心指针越界
3、指针指向空间释放即使其置为NULL
4、指针使用之前检查有效性 (例如:判断是否为NULL)
野指针概念、定义、及如何规避野指针相关推荐
- linux c 指针数组定义数组长度,C/C++指针数组和 迪士尼源码搭建下载 数组指针...
迪士尼源码搭建下载[ 指针数组 : 存放指针的数组 其定义抽象为:指向变量的类型 * 数组名称 [数组长度]. int *p[2]; p[0] = NULL; p[1] = NULL; 2. 数组指针 ...
- C语言指针:定义,使用及计算指针大小
关于指针的运算符 代码示例:定义指针 运行结果: 图示 指针本身所占大小sizeof() 代码证明: 基本数据类型的指针都占4个字节:
- c语言函数指针 的定义方法,C语言 函数指针一(函数指针的定义)
//函数指针 #include #include #include //函数指针类型跟数组类型非常相似 //函数名就是函数的地址,函数的指针,对函数名进行&取地址操作,还是函数名本身,这是C语 ...
- 对指针的详细认识(一)—— 指针概念+指针类型+野指针+指针运算+二级指针
文章目录 指针是什么? 指针的定义 指针的大小 指针类型 指针有哪些类型? 指针类型有什么意义? 野指针 野指针的成因 如何避免野指针 指针运算 指针+-整数 指针-指针 指针的关系运算 二级指针 指 ...
- 字符串指针的定义、初始化与赋值
指针的定义.初始化与赋值 指针的定义.初始化与赋值 char * 和 const char * 用字符串常量给指针和数组赋值 数组和指针表示字符串的异同 同: 不同: 留待解决的问题: 指针的定义.初 ...
- 【C语言学习笔记】函数指针的定义和用法
函数指针的定义和用法 先回顾下数组的储存方式,当你在程序中定义了一个数组,那么系统就会自动根据你的数组类型和数组长度申请一块储存空间给你.而且数组名储存的地址刚好就是申请的这块储存空间的首地址,这也是 ...
- 指针之野指针系列(2):如何规避野指针
指针之野指针系列(2):如何规避野指针! 对于野指针的成因,部分由笔者上篇博文吸引而来的读者已经知道并且理解,但是对于部分由外网搜索而来的读者可能不是很理解,因此可以参考一下笔者上篇博文:指针之野指针 ...
- 关于零指针、NULL、空指针、vold*指针和野指针的总结
1. 零指针 零值指针,是值为0的指针,可以是任何一种指针类型,可以是通用变体类型void*,也可以是char*,int*等等. 在C++里面,任何一个概念都要以一种语言内存公认的形式表现出来,例如s ...
- 常引用、常量指针、指针常量、指向常量的常指针、空指针与野指针解释
1.一.基础知识 引用并非对象 引用必须初始化 引用只能绑定在对象上,而不能与字面值或某个表达式的计算结果绑定在一起 类型要严格匹配 int &a = 10; //错误:引用类型的初始值必须是 ...
最新文章
- 解放程序员双手!GPT-3自动生成SQL语句 | 代码开源
- python datasets 下载_Python机器学习·微教程
- java 方法 示例_Java 9示例–收集的工厂方法–创建不可修改的列表,集合和映射...
- EMR StarRocks 极速数据湖分析原理解析
- BZOJ.1013.[JSOI2008]球形空间产生器(高斯消元)
- 互联网公司面试必备综合篇
- linux .o文件,Linux 文件I/O
- Site-Site Ipsec ×××配置和验证
- 实战HTML:模拟Mac界面静态实现
- redis命令行技术文档。命令教程
- 《深入理解OSGi:Equinox原理、应用与最佳实践》一2.1 OSGi规范概要
- OpenGL超级宝典(第7版)笔记18 位移、旋转、缩放、观察、透视矩阵 代码实现
- 一文看懂:销售数据分析怎么做?
- linux操作系统实训心得总结,操作系统实验报告心得体会
- 通过ajax获取经纬度,通过百度地图获取经纬度
- CH579 以太网转串口 串口服务器代码!需要自己编程提升能力的非常值得参考的代码
- tab键在python中的作用_python中tab键是什么意思
- 计算机网络:随机访问介质访问控制之ALOHA协议
- 用友U8 业务单据打印机设置
- Centos 8 安装 Openbravo 之安装 ant