Я установил инструмент Cppcheck для статического анализа кода моего проекта на C++ и почувствовал, что он плохо работает. Например, может ли кто-нибудь сказать мне, , почему Cppcheck не может найти массив за пределами -ошибки -границ в следующем коде?
void f(int c) {
char *p = new char[10];
p[c] = 42;
}
void g() {
f(100);
}
Существует онлайн-демонстрация , где этот код можно удобно проверить с помощью Cppcheck. Все, что он выдает, это утечка памяти в строке 4, никаких признаков потенциального переполнения буфера.