2024年2月20日发(作者:)
(完整word版)cppcheck扫描规则
规则
arrayIndexOutOfBounds
arrayIndexThenCheck
bufferAccessOutOfBounds
CastIntegerToAddressAtReturn
catchExceptionByValue
描述
数组下标越界
数组越界访问
缓冲区访问越界
把整数返回地址
函数返回的整数指针类型是不可移植的
类型用作数组索引,如果该值可以超过127将会有一个缓冲charArrayIndex
clarifyCalculation
clarifyCondition
clarifyStatement
区下溢
可疑的计算;不明确计算的优先级
可疑的条件
可疑的声明
信息处理,You can use —I or —-include to add
class_X_Y
compareBoolExpressionWithInt
comparisonError
comparisonOfBoolWithInt
comparisonOfFuncReturningBoolError
ConfigurationNotChecked
constStatement
copyCtorPointerCopying
cstyleCast
deallocDealloc
handling of this code。
布尔表达式与整形比较
比较错误
布尔表达式与整形比较
比较函数返回布尔值的错误
配置不检查
常量的声明
指针指向分配的内存,复制构造函数,而不是分配新的内存.
c语言风格的指针铸造
回收一个分配指针
(完整word版)cppcheck扫描规则
deallocuse
duplicateBreak
dealloc函数的使用
重复
连续的 return, break, continue, goto or throw
statements 是没有必要的。第二个语句无法执行,因此应该duplicateExpression
duplInheritedMember
被删除。
成员变量的名称与父类的相同
迭代器中,无效后元素指向被删除。非关联化或比较它与另一eraseDereference
exceptRethrowCopy
exceptThrowInDestructor
fflushOnInputStream
incorrectLogicOperator
incorrectStringBooleanError
incorrectStringCompare
insecureCmdLineArgs
invalidPointerCast
invalidPrintfArgType_int
invalidPrintfArgType_s
invalidPrintfArgType_sint
invalidPrintfArgType_uint
invalidscanf
IOWithoutPositioning
memleak
个迭代器是无效的操作。
重新抛出了异常,没有不必要的复制
析构函数中抛出异常。
fflus调用输入流,结果是未定义的
不正确的逻辑操作符
不正确的字符串逻辑
不正确的字符串比较
长命令行参数可能使缓冲区溢出.
不兼容的二进制表示
无效的整形输出格式
无效的字符串输出格式
无效的sint输出格式
无效的uint输出格式
字段没有字符长度限制
读和写操作没有调用Positioning函数
内存泄露
(完整word版)cppcheck扫描规则
memleakOnRealloc
常见的Realloc错误:调用失败的空值没有释放
使用memset类包含一个虚拟方法是不安全的,因为构造函数、析构函数和拷贝操作符调用omitted.这些都是必要的对memsetClass
memsetValueOutOfRange
memsetZeroBytes
mismatchAllocDealloc
multiCondition
noConstructor
noCopyConstructor
nullPointer
obsoleteFunctionsasctime
obsoleteFunctionsgets
operatorEq
operatorEqToSelf
operatorEqVarError
oppositeInnerCondition
passedByValue
pointerLessThanZero
postfixOperator
publicAllocationError
redundantAssignInSwitch
redundantAssignment
于这个non-POD确保创建一个有效的对象类型。
memset()参数并不适合一个无符号字符
memset()调用0字节的tmp
分配和回收失败
表达式总是错误的
没有构造函数
没有拷贝构造函数
空指针
过时的函数asctime调用.推荐使用strftime函数。
过时的函数被调用。推荐使用fgets函数.
操作符不符合C++的标准
使用运算符“=”检查自己的作业时应该避免动态内存的问题。
错误的使用=赋值成员变量
相反的内在条件
在c++中,函数参数strDir应该以引用的方式传递。
指针小于零是无意义的
前缀+ + / -基本类型操作是低效率的
在公共函数可能泄漏。缓冲区的指针不收回之前分配。
Switch中冗余分配值
冗余分配:变量是重新分配一个被使用旧的值.
(完整word版)cppcheck扫描规则
redundantCopy
redundantIfRemove
resourceLeak
returnLocalVariable
selfAssignment
sizeofCalculation
sizeofwithnumericparameter
sprintfOverlappingData
冗余拷贝:缓冲路径写入之前旧的内容已经被使用。
冗余检查然后再删除它
资源泄露
返回局部变量
自动赋值
内部计算sizeof函数
可疑的使用sizeof数字常数作为参数。
重叠数据
c_str()的结果传递给一个函数,采用string作为参数.是缓stlcstrParam
stlcstrReturn
stlOutOfBounds
stlSize
慢和冗余。
返回的结果c_str()函数,它返回string是缓慢和冗余。
字符串越界
字符串的长度限制
strncat附加在max三参数数量的字符。安全的方式使用strncatUsage
strPlusChar
syntaxError
thisSubtraction
unassignedVariable
uninitMemberVar
uninitStructMember
uninitvar
unnecessaryQualification
strncat是计算剩余空间缓冲区和使用它作为第三个参数.
不寻常的指针算术.一个char类型的值添加到字符串文字。
语法错误
可疑的指针减法。
未赋值的变量
在构筑函数中没有赋值成员变量
未初始化结构体成员
未初始化变量
是不必要的或是由许多编译器造成的错误
(完整word版)cppcheck扫描规则
unreachableCode
unreadVariable
unsignedLessThanZero
unusedAllocatedMemory
unusedPrivateFunction
unusedStructMember
unusedVariable
useAutoPointerArray
useInitializationList
uselessAssignmentPtrArg
variableScope
wrongPrintfScanfArgNum
执行不到的代码
未读的变量
无符号变量永远不会是负的,所以它是无意义的检查
未使用分配的内存
未使用的私有函数
未使用结构体成员
未使用的变量
数组操作使用自由的指针
构造函数体内的分配变量。考虑初始化列表中进行初始化。
无用的参数
变量值的范围太大
函数缺少参数


发布评论