6

CppCheck 1.67 hat identifiziert und Array-Zugriff außerhalb der Grenzen Fehler in einem meiner Projekte. Ich dachte nicht, dass der Code falsch war, also habe ich den Code auf das Minimum-Beispiel reduziert, das immer noch denselben Fehler verursacht. Warum gibt CppCheck den folgenden Fehler für das erste C++ - Beispiel (innerhalb eines Namespace), aber nicht für das zweite Beispiel (ohne Namespace)?Warum gibt CppCheck einen Array-Zugriff außerhalb der Grenzen für dieses statische const-Array?

Mache ich etwas falsch mit dem Namespace bei meiner Array-Initialisierung oder ist das ein Fehler in CppCheck?

Gemeldeter Fehler: "Array 'testArray [5]' hat bei Index 5 zugegriffen, was außerhalb der Grenzen liegt."

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

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

keine Fehler gemeldet:

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

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

Antwort

4

scheint in cppcheck ein Fehler zu sein, vielleicht mit diesem Thema auf dem Tracker verbunden ist:

FP arrayIndexOutOfBounds: member variable of class declared in namespace.

+0

Dies beantwortet meine Frage, danke. Mach dir keine Sorgen darüber weiter. Ich denke, dass der Fehler ohne eine Reparatur geschlossen wird? – Owen

+2

In der Tat. Ich habe das Ticket wieder geöffnet und einen Link zu dieser Frage bereitgestellt, hoffentlich werden sie das beheben. –