Как получить индекс элемента массива с bsearch на Си?
Вычтите из указателя указатель на начало массива. Будет индекс.
int *pointer;
    pointer = &a[0];
    printf("%d", &p - &pointer);
Елси так то я получаю 2 
-100 -32 -31 0 1 2 3 31
а 0 3ий