☰
  • 首页
  • 规则分类
  • 项目介绍
search
•••

指针与空指针不应比较大小

14.19 ID_oddPtrZeroComparison
目录 › next › previous

指针与空指针比较大小往往意味着逻辑错误,而且只有指向同一数组或对象的指针才能比较大小,否则会导致标准未定义的行为,空指针不指向任何数组或对象,故指针与空指针不应比较大小。

指针与空指针之间只应使用 == 或 != 比较,其他比较运算符均不符合要求。

本规则是 ID_illPtrDiff 的特化。

示例(设 p 为指针):

p < NULL       // Non-compliant, may be always false
p >= 0         // Non-compliant, may be always true
p > nullptr    // Non-compliant, use p != nullptr instead
p <= 0         // Non-compliant, use p == 0 instead

p == NULL      // Compliant
p != nullptr   // Compliant

相关

ID_illPtrDiff

依据

ISO/IEC 9899:1999 6.5.8(5)-undefined ISO/IEC 9899:2011 6.5.8(5)-undefined

参考

CWE-1025
Copyright©2024 360 Security Technology Inc., Licensed under the Apache-2.0 license.