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