Freigeben über


Warnung C26481

Verwenden Sie keine Zeigerarithmetik. Verwenden Sie stattdessen Span (bounds.1).

Hinweise

Diese Überprüfung unterstützt die C++-Kernrichtlinienregel I.13: Übergeben Sie kein Array als einzelner Zeiger. Wann immer unformatierte Zeiger in arithmetischen Vorgängen verwendet werden, sollten sie durch sicherere span<T> Puffertypen wie z. B. oder vector<T>.

Diese Überprüfung ist restriktiver als I.13: Sie überspringt zstring oder czstring gibt keine Typen an.

C26481 und C26485 stammen aus den Bounds Tresor ty Profile-Regeln. Diese Regeln wurden in der ersten Version der C++ Core Guidelines Checker implementiert. Sie gelten für die Kategorie "Unformatierte Zeiger", da sie dazu beitragen, unsichere Verwendung von Unformatierten Zeigern zu vermeiden.

Beispiel

Dieses Beispiel führt zu einer Warnung für Zeigerarithmetik.

// c26481_bad.cpp
// compile using:
// set Esp.Extensions=CppCoreCheck.dll
// cl /W3 /EHsc /permissive- /analyze /analyze:plugin EspXEngine.dll /analyze:ruleset "%VSINSTALLDIR%\Team Tools\Static Analysis Tools\Rule Sets\CppCoreCheckBoundsRules.ruleset" c26481_bad.cpp

int main() noexcept
{
    int * from_array = new int(10);
    int * later_array = from_array + 1;
    delete[](from_array);
}