【腾讯云代码分析】经典案例分享:空指针异常 #1085
xiohuang9
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
规则介绍
空指针是编程中常见的问题之一,它可能导致未定义的行为和程序崩溃。当程序试图访问一个空指针所指向的内存时,操作系统通常会抛出异常或错误,导致程序崩溃。
下列案例以Objective-C代码为例,对应代码分析clang工具中的规则:NullPointer——用于检测代码中指针是否为空,并确保在适当的时候分配和释放内存。
NullPointer属于编译型工具规则,需要在安装有Xcode、且具备项目编译环境的Mac机器上执行代码分析,并且在分析方案中配置项目的xcodebuild编译命令。
经典案例
代码案例

问题描述
在这段代码中,myPointer被声明为一个指向int类型的指针。在if条件分支中,如果条件为真,myPointer会被赋值为空,变成一个空指针,后续对myPointer进行解引用(即*myPointer = 45;),将导致程序崩溃,因为我们试图访问一个未分配的内存地址。
解决方案
在对指针进行解引用之前,先对指针进行判空:
规则使用说明
进入页面,点击方案->规则配置 -> 自定义规则包-> 添加规则 ->搜索规则名NullPointer->选择规则 ->批量添加规则



联系我们
欢迎访问我们的平台:腾讯云代码分析

使用文档:腾讯云代码分析帮助文档
持续为您的代码助力!
扫描可进开源群畅聊技术&答疑解惑
Beta Was this translation helpful? Give feedback.
All reactions