Почему CppCheck дает ошибку доступа к массиву за пределами этого статического константного массива?

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};

6

Решение

Кажется, это ошибка в CppCheck, возможно, связана с этой проблемой на трекере:

FP arrayIndexOutOfBounds: переменная-член класса, объявленная в пространстве имен.

4

Другие решения


По вопросам рекламы [email protected]