【规则分享】C/C++成员变量未初始化 #1071
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
-
项目背景
在C/C++中,成员变量未初始化可能会导致未定义的行为。当声明一个类或结构体时,其中的成员变量默认情况下不会被初始化。这意味着它们的值是未知的,可能是任意的。如果使用未初始化的成员变量,可能会导致程序出现错误或产生不可预测的结果。
通过在声明时进行初始化,可以确保成员变量在使用之前具有已知的初始值,从而避免未定义的行为。
错误示例:
检测结构体被实例化时候,没有对成员变量进行初始化赋值的情况:
规则推荐
工具:TCA-Armory-Q1
它是一款由TCA自研的代码分析工具。它可以帮助开发人员对代码进行静态分析,发现潜在的问题和漏洞,并提供相应的修复建议。
规则:Uinit
如果在定义变量后直接使用它而没有进行初始化,可能会导致无法预测的行为和错误。未初始化的变量可能包含垃圾值,这可能会导致程序崩溃或产生安全漏洞。
为了避免这种情况,建议在定义变量时立即对其进行初始化。这样可以确保变量具有已知的初始值,从而避免潜在的问题。另外,还可以通过编程规范和代码审查来帮助发现和修复这类问题,以确保代码的可靠性和安全性。
规则使用说明
进入页面,点击方案->规则配置 -> 自定义规则包-> 添加规则 ->搜索规则名uinit->选择需要添加的规则 ->批量添加规则
![1、2](https://private-user-images.githubusercontent.com/160583399/329115684-21f16d8b-ed6f-479a-ba88-adfb294b9979.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTgwNzYyMjMsIm5iZiI6MTcxODA3NTkyMywicGF0aCI6Ii8xNjA1ODMzOTkvMzI5MTE1Njg0LTIxZjE2ZDhiLWVkNmYtNDc5YS1iYTg4LWFkZmIyOTRiOTk3OS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNjExJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDYxMVQwMzE4NDNaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT03ZmJiNzE3YjI3YThjZWMzNTkwMjViYWM0ZmU2NGM0YWYzYTA5ZjU1MzcxYWFiNmRkMDU0NzM1NzVjODcxNTA3JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.3g-nhqk4KL3MEr_ryN5MQ9HN7VJyduy8_YoJnuu7Hxc)
![image](https://private-user-images.githubusercontent.com/160583399/329116415-6916e348-8e9b-4546-ae58-483c06727753.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTgwNzYyMjMsIm5iZiI6MTcxODA3NTkyMywicGF0aCI6Ii8xNjA1ODMzOTkvMzI5MTE2NDE1LTY5MTZlMzQ4LThlOWItNDU0Ni1hZTU4LTQ4M2MwNjcyNzc1My5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNjExJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDYxMVQwMzE4NDNaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0wNDg3NGMwMTc0OWFjZjk5N2M3NmQ2YjkzODllOGNlNDhiOWE1NGI0ZTRjOTczYmQzNjkyNjI5ZDlhMTUyZDIxJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.RbD4SbGn4InhDkChS-oRe5S6gIOLKtlWPr_t0URkTCc)
联系我们
欢迎访问我们的平台:腾讯云代码分析
使用文档:腾讯云代码分析帮助文档
CI流水线接入腾讯云代码分析:接入指引
我们开源啦:GitHub开源地址
Beta Was this translation helpful? Give feedback.
All reactions