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: переменная-член класса, объявленная в пространстве имен.