C语言野指针【入门详解】

目录

一、什么是野指针

二、野指针的成因

[2.1 指针未初始化](#2.1 指针未初始化)

[2.2 指针越界访问](#2.2 指针越界访问)

[2.3 指针指向的空间释放](#2.3 指针指向的空间释放)

三、如何规避野指针

[3.1 初始化指针](#3.1 初始化指针)

[3.2 小心越界访问](#3.2 小心越界访问)

[3.3 当指针不用时,及时置为空](#3.3 当指针不用时,及时置为空)

[3.4 避免返回局部变量的地址](#3.4 避免返回局部变量的地址)

*结语:

希望这篇关于指针基础知识的博客能对大家有所帮助,欢迎大家在本篇博客下留言或私信与我交流!


一、什么是野指针

指针指向的位置是随机的,不正确的,没有明确限制的。


二、野指针的成因

2.1 指针未初始化

  • p为野指针,指向的位置是随机的

2.2 指针越界访问

  • p越界访问,指向的地址是不正确的,解引用得出的值也是随机的

2.3 指针指向的空间释放


三、如何规避野指针

3.1 初始化指针

(1)当明确知道指针要指向谁时

int* p=&a;

(2)当不知道指针要指向谁时,置为空

int* p=NULL;


3.2 小心越界访问

3.3 当指针不用时,及时置为空

3.4 避免返回局部变量的地址

(对应野指针成因的第三个例子)


*结语:

希望这篇关于指针基础知识的博客能对大家有所帮助,欢迎大家在本篇博客下留言或私信与我交流!

相关推荐
Learner__Q几秒前
每天五分钟:leetcode动态规划-递归与递推_day2
算法·深度优先
wadesir3 分钟前
Judy数组:C语言中的高性能动态数组(全面入门Judy库使用指南)
c语言·开发语言
代码游侠4 分钟前
学习笔记——Linux内核链表
linux·运维·笔记·学习·算法·链表
一个平凡而乐于分享的小比特5 分钟前
C语言中 volatile 关键字总结
c语言·volatile
发疯幼稚鬼6 分钟前
插入排序与冒泡排序
c语言·数据结构·算法·排序算法
小年糕是糕手9 分钟前
【C++同步练习】内存管理
开发语言·jvm·数据结构·c++·程序人生·算法·改行学it
一个平凡而乐于分享的小比特11 分钟前
static 关键字详解
c语言·static
一个平凡而乐于分享的小比特14 分钟前
C语言内存布局
c语言·const·内存布局
灵感__idea20 分钟前
Hello 算法:以“快”著称的哈希
前端·javascript·算法
ACERT33321 分钟前
05-矩阵理论复习第五章 向量与矩阵范数
python·算法·矩阵