Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Ne használjon mutató aritmetikai elemet. Használja inkább a spant (bounds.1).
Megjegyzések
Ez az ellenőrzés támogatja a C++ Alapvető irányelvekI.13 szabályt: Ne adjon át tömböt egyetlen mutatóként. Amikor nyers mutatókat használnak az aritmetikai műveletekhez, biztonságosabb pufferekre kell cserélni őket, például span<T>vector<T>.
Ez az ellenőrzés szigorúbb, mint az I.13: nem hagyja ki zstring vagy czstring nem típusok.
A C26481 és a C26485 a Bounds biztonsági profil szabályaiból származik. Ezek a szabályok a C++ alapvető irányelvek ellenőrzőjének első kiadásában lettek implementálva. A nyers mutatók kategóriára alkalmazhatók, mivel segítenek elkerülni a nyers mutatók nem biztonságos használatát.
példa
Ez a minta a mutató aritmetikai figyelmeztetését eredményezi.
// 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);
}