C - как преобразовать указатель в массив в индекс?

Во многих функциях поиска C (bsearch приходит на ум), если результат найден, возвращается указатель на пятно в массиве. Как я могу преобразовать этот указатель в индекс в массив, который был обыскан (используя арифметику указателя, я предполагаю).

Ответ 1

ptrdiff_t index = pointer_found - array_name;