我正在尝试对包含十六进制地址的结构数组进行二进制搜索。每个结构都包含一些地址,当我给出一个输入地址时,我想找到具有跨越我输入地址的范围的结构,而不仅仅是与结构起始地址完全匹配的结构。
我可以用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;
}
我实际经历的数据是存储c文件中函数的名称,地址等的文件。我想输入一个地址来了解我所处的函数。为此,我需要能够匹配结构中的地址,而不仅仅是结构开头的地址。