gpt4 book ai didi

c++ - 为什么 CppCheck 会为此静态常量数组给出数组访问越界错误?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:37:36 26 4
gpt4 key购买 nike

CppCheck 1.67 在我的一个项目中发现了数组访问越界错误。我不认为代码有错,所以我将代码精简到仍然会引发相同错误的最低限度示例。为什么 CppCheck 对第一个 C++ 示例(在命名空间内)给出以下错误,但对第二个示例(没有命名空间)却没有给出以下错误?

我是不是在数组初始化时对命名空间做错了什么,或者这是 CppCheck 中的错误?

报告错误:“数组 'testArray[5]' 在索引 5 处访问,超出范围。”

namespace TestNamespace
{
class TestClass
{
static const int testArray[5];
};

const int TestClass::testArray[] = { 1, 2, 3, 4, 5};
}

没有报告错误:

class TestClass
{
static const int testArray[5];
};

const int TestClass::testArray[] = { 1, 2, 3, 4, 5};

最佳答案

似乎是 CppCheck 的错误,可能与跟踪器上的这个问题有关:

FP arrayIndexOutOfBounds: member variable of class declared in namespace .

关于c++ - 为什么 CppCheck 会为此静态常量数组给出数组访问越界错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27060517/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com