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

C++ 代码中 sizeof 不应作用于 NULL

10.7.8 ID_sizeof_NULL
目录 › next › previous

标识符 NULL 由实现定义,在 C++ 语言中往往等同于常量 0,sizeof(NULL) 的结果很可能与预期不符。

示例:

size_t n = sizeof(NULL);   // Non-compliant

不同的编译器对示例代码有不同的处理,有些会把 NULL 当作指针,有些会当作常量 0。

应改为:

size_t n = sizeof(nullptr);   // Compliant

相关

ID_deprecatedNULL

依据

ISO/IEC 14882:2003 C.2.2.3(1)-implementation ISO/IEC 14882:2011 C.3.2.4(1)-implementation ISO/IEC 14882:2017 C.5.2.7(1)-implementation

参考

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