C语言指针使用总结

2022-04-25 21:36:50 浏览数 (1)

前言

说起C语言中令人头疼的特性,相信大多数人都首先会提指针。

指针非常强大,但也非常不容易驾驭。不知道有多少人因为指针想大声对C语言高歌一曲”爱恨就在一瞬间“。

指针之所以强大,是因为它自由,可以让程序员充分发挥创意,去使用机器的全部能力。

也正是因为自由,所以它放大了人不够严谨的弱点,让人特别容易犯错。

这个系列的文章试图对指针方面常犯的错误做个梳理总结,帮助大家驯服这个C语言的野马。

指针问题本质上可以分为两类,一类是读不属于自己的内存,一类是写不属于自己的内存。

写不属于自己的内存会导致写坏其它流程的数据,引起其它无辜流程的异常。这就是程序员们谈虎色变的”踩内存“,因为这种问题通过分析出错位置处的代码很难看出出错点,所以极难排查。

至于为什么会读写不属于自己的内存,根据问题起因,大体可以分为以下两大类情况:

分类

错误情形

说明

内容错误

1.未初始化 2.空指针 3.指针失效

指针或指针指向的数据错误

过程错误

1.指针偏移计算问题 2.指针访问边界问题 3.指针类型问题 4.结构体对齐问题 5.多引用访问

指针的访问过程发生错误,访问到不该访问的内容

后续的文章, 我将对上面列举的常见问题进行一一分析,看看有哪些好方法可以解决问题。

0 人点赞