V782. There is no sense in evaluating the distance between elements from different arrays.

Анализатор обнаружил бессмысленный код для вычисления расстояния между элементами разных массивов.

Рассмотрим пример:

ptrdiff_t offset()
{
  char path[9] = "test.txt";
  char resources[9] = "resr.txt";
  return path - resources;
}

Вычитание адресов двух массивов, выделенных на стеке, не имеет никакого практического смысла и скорее всего является ошибкой.

Для рассмотрения всех подозрительных операций с указателями на массивы, разделим типы указателей на две условные группы:

Тогда получим таблицу операций над указателями на массивы, вычисление которых не имеет практического смысла (таблица 1).

V782_ru/image1.png

Таблица 1 - Бессмысленные операции над указателями.

Данная диагностика классифицируется как: