C中的Bsearch匹配一系列元素,而不是特定元素

时间:2013-03-03 22:53:38

标签: c search bsearch

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

我可以用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文件中函数的名称,地址等的文件。我想输入一个地址来了解我所处的函数。为此,我需要能够匹配结构中的地址,而不仅仅是结构开头的地址。

0 个答案:

没有答案