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

在 C++ 代码中用容器代替 C 数组

6.4.9 ID_forbidCArray
目录 › next › previous

相比 C 数组,C++ 的 std::array、std::vector 等容器更安全,且提供成员函数,以及标准库支持。

示例:

int a[3]{}, b[3]{};
array<int, 3> c{}, d{};

if (a >= b) {  // Undefined behavior
    ....
}
if (c >= d) {  // Well defined
    ....
}

C 数组可以退化成指针,例中 a >= b 比较指针的大小,但比较未指向同一数组的指针会导致未定义的行为;c 和 d 是标准容器,不会退化成指针,比较运算符也由标准库明确定义。

相关

ID_invalidParamArraySize

参考

C++ Core Guidelines SL.con.1 C++ Core Guidelines R.14
Copyright©2024 360 Security Technology Inc., Licensed under the Apache-2.0 license.