Поиск в C для соответствия в пределах диапазона элементов вместо определенного элемента
Я пытаюсь сделать двоичный поиск массива структур, которые содержат шестнадцатеричные адреса. Каждая структура содержит несколько адресов, и когда я даю входной адрес, я хочу найти структуру, которая имеет диапазон, который охватывает мой входной адрес, а не просто точное совпадение с адресом начала структуры.
Могу ли я сделать это с помощью bsearch? У меня возникли проблемы с поиском функции сравнения, которая будет работать для этого.
ptrSymbolArray содержит исходные данные. Эта функция выглядит бессмысленно, потому что для упрощения я исключил условие, которое я использую для данных из ptrSymbolArray. Здесь я включаю все из этих исходных данных.
typedef struct{
int name;
int address;
} testStruct
static testStruct **fillArray(testStruct *ptrSymbolArray, int *arraySize,
char *ptrNameArray, int *arrcount){
testStruct **fillArray = malloc((*arraySize)*sizeof(testStruct));
for(int i=0; i< *arraySize; i++){
fillArray[*arrcount] = ptrSymbolArray+i;
(*arrcount)++;
}
}
return fillArray;
}
Данные, которые я на самом деле просматриваю, представляют собой файлы, в которых хранятся имена, адреса и т. Д. Функций в файле ac. Я хочу ввести адрес, чтобы знать, в какой функции я нахожусь. Для этого мне нужно иметь возможность сопоставлять адрес в структуре, а не только адрес в начале структуры.