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

形参与实参均为数组时,数组大小应一致

10.6.10 ID_inconsistentArraySize
目录 › next › previous

被声明为数组的形式参数等同于指针,对传入的实际参数起不到限制作用,为了避免潜在的问题,当实际参数也是数组时,应要求实际参数与形式参数具有相同的元素个数。

示例:

int foo(int a[10]);

int bar() {
    int a[5] = {0};
    return foo(a);    // Non-compliant
}

例中 foo 函数的形式参数被声明为具有 10 个元素的数组,而实际传入的数组只有 5 个参数,但这种代码可以通过编译。

在 C++ 代码中建议使用 std::array 等容器代替 C 数组,可参见 ID_forbidCArray 的进一步讨论。

相关

ID_invalidParamArraySize ID_forbidCArray

依据

ISO/IEC 9899:1999 6.7.5.3(7) ISO/IEC 9899:2011 6.7.6.3(7) ISO/IEC 14882:2003 13.1(3) ISO/IEC 14882:2011 13.1(3)

参考

MISRA C 2012 17.5
Copyright©2024 360 Security Technology Inc., Licensed under the Apache-2.0 license.