【嵌入式】让人又爱又恨的“指针”

调试bug遇到了野指针,无语凝噎,记录

【嵌入式】让人又爱又恨的"指针"

1.我到底是个啥?

1.1【解释一下】

回顾一下, 什么是指针?指针在内存中实际上是一个无符号整数(unsigned int),但是它的值被赋予特殊的解释:表示变量或函数的地址。所以才被形象地称为"指针",就好像指向谁家似的。

1.2【谨慎使用】

在使用指针前, 都必须先让它指向有意义的, 并且允许由程序使用的实体------数据和代码

2.毒舌"野指针"

野指针就像"肉里的刺, 酱里的蛆" 一般:一个野指针就足以毁掉整个系统, 而且极其隐蔽, 很难通过症状来找出是哪里存在野指针,

某个指针变量的值因为某种原因,指向了非法的范围,使其"枪口" 乱指

  • 程序逻辑错误
  • 数组越界
  • 堆栈溢出
  • 指针没有合理的初始化
  • 对缓存处理不当
  • 多任务环境中的紊乱条件

以上操作都有可能制造出野指针。若使用野指针去读取或修改内存, 则被读取或修改的位置是不可预料的。

使用野指针去 读取内存------------读回来的都是乱掉的数据

使用野指针去 修改内存------------破坏未知用途的数据

这常常导致系统发生莫名其妙的功能紊乱, 严重时会使系统毫无征兆,没有理由地失控、死机。

相关推荐
努力努力再努力wz2 分钟前
【Redis入门系列】Redis基础命令详解:从客户端连接到数据读写、key 管理与过期机制
c语言·开发语言·数据结构·数据库·c++·redis·缓存
谙弆悕博士5 分钟前
【附C源码】C语言实现散列表
c语言·开发语言·数据结构·算法·散列表·数据结构与算法
Lucky_ldy7 分钟前
C语言学习:自定义类型-结构体
c语言·开发语言·学习
kkeeper~8 分钟前
0基础C语言积跬步之深入理解指针(5上)
c语言·开发语言·算法
東隅已逝,桑榆非晚15 分钟前
深⼊理解指针(6)
c语言·笔记
Lucky_ldy35 分钟前
C语言学习: 自定义类型—联合和枚举
c语言·学习·算法
超级小星星13 小时前
C 语言结构体内存对齐深度解析:从概念到实战
c语言·开发语言
笨笨饿13 小时前
74_SysTick滴答定时器中断
c语言·开发语言·人工智能·单片机·嵌入式硬件·算法·学习方法
科芯创展14 小时前
XZ4058B/C,20V,外置MOS,8.4V/8.7V开关充电芯片 宽范围电源电压:8.9V~20V-(电池充电电压:8.4V/8.7V)
c语言·开发语言
Aurorar0rua15 小时前
CS50 x 2024 Notes C -11
c语言·开发语言·学习方法