1

我正在尝试对包含十六进制地址的结构数组进行二进制搜索。每个结构都有几个地址,当我给出输入地址时,我想找到具有跨越我输入地址的范围的结构,而不仅仅是与结构开始的地址完全匹配。

我可以用 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 文件中存储函数名称、地址等的文件。我想输入一个地址来知道我在哪个函数中。为此,我需要能够匹配结构内的地址,而不仅仅是结构开头的地址。

4

0 回答 0