首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【规则分享】C++条件逻辑NPE

【规则分享】C++条件逻辑NPE

作者头像
CodeDog
发布2024-11-13 10:05:31
发布2024-11-13 10:05:31
16000
代码可运行
举报
运行总次数:0
代码可运行
官网地址:(点击最下方【阅读原文】可直达)https://tca.tencent.com/

官网介绍:https://cloud.tencent.com/product/tcap 官方开源:https://github.com/Tencent/CodeAnalysis

国内镜像:https://git.code.tencent.com/Tencent_Open_Source/CodeAnalysis

背景介绍

日常编码时,开发者有时可能会没理清楚逻辑,就会制造出一些逻辑上的NPE(Null Pointer Exception,空指针异常)。比如以下代码:

代码语言:javascript
代码运行次数:0
运行
复制
#include <stdio.h>
#include <iostream>

void test(const std::string* abc)
{
  if (abc == nullptr && abc->empty()) {
    return;
  }
  printf("%s", "abc");
}

int main() {
    return 0;
}

可以看到,第六行的 if 条件判断语句的逻辑有误,因为当 abc 是 nullptr 时,尝试访问 abc->empty() 会导致空指针异常。

推荐规则

  • 工具:cppcheck Cppcheck 是一个开源的静态代码分析工具,用于检测C和C++代码中的错误、警告和潜在问题。它具有多平台支持、自定义规则和灵活的使用方式,
  • 规则:nullPointerRedundantCheck 通过使用这个规则,开发人员可以更好地理解代码中的空指针检查,并根据需要进行优化。这有助于提高代码的可读性和性能,同时减少不必要的代码复杂性。

规则使用说明

进入页面,点击方案->规则配置 -> 自定义规则包-> 添加规则 ->搜索规则名nullPointerRedundantCheck->选择需要添加的规则 ->批量添加规则

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-11-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾讯云代码分析 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景介绍
  • 推荐规则
  • 规则使用说明
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档