1

16 進アドレスを含む構造体の配列のバイナリ検索を実行しようとしています。各構造体にはいくつかのアドレスが保持されます。入力アドレスを指定するときは、構造体の開始アドレスと完全に一致するだけでなく、入力アドレスにまたがる範囲を持つ構造体を見つけたいと考えています。

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