Анализатор обнаружил бессмысленный код для вычисления расстояния между элементами разных массивов.
Рассмотрим пример:
ptrdiff_t offset()
{
char path[9] = "test.txt";
char resources[9] = "resr.txt";
return path - resources;
}
Вычитание адресов двух массивов, выделенных на стеке, не имеет никакого практического смысла и скорее всего является ошибкой.
Для рассмотрения всех подозрительных операций с указателями на массивы, разделим типы указателей на две условные группы:
Тогда получим таблицу операций над указателями на массивы, вычисление которых не имеет практического смысла (таблица 1).
Таблица 1 - Бессмысленные операции над указателями.
Данная диагностика классифицируется как:
|