﻿# V782\. It is pointless to compute the distance between the elements of different arrays\.

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

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

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

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

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

* В группу 'A' входят указатели на массивы, размещённых на стеке\. А также массивы, аллоцированные с помощью `new` или `malloc`, над которыми не были произведены операции смещения указателя\.
* В группу 'B' входят указатели на массивы, аллоцированные с помощью `new` или `malloc`, над которыми были совершенны операции смещения указателя\. Либо это указатель, о котором у анализатора нет информации\.

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

![V782_ru/image1.png](https://import.viva64.com/docx/blog/V782_ru/image1.png)

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