Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Не используйте арифметический указатель. Используйте вместо этого диапазон (bounds.1).
Замечания
Эта проверка поддерживает правило основных рекомендаций C++ I.13: не передает массив в виде единого указателя. Каждый раз, когда необработанные указатели используются в арифметических операциях, они должны быть заменены более безопасными типами буферов, например span<T> или vector<T>.
Эта проверка является более строгой, чем I.13: она не пропускает zstring или czstring не вводит типы.
C26481 и C26485 приходят из правил профиля безопасности Границ. Эти правила были реализованы в первом выпуске средства проверки основных рекомендаций C++ . Они применимы к категории необработанных указателей, так как они помогают избежать небезопасного использования необработанных указателей.
Пример
Этот пример приводит к предупреждению для арифметики указателя.
// 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);
}