構造体のポインタの配列を使用したbsearch

user547995

私は構造体を持っています:

typedef struct entry_t {
  char * name;
  int lines [MAX];
  int n;/*n lines*/
} entry_t;

および構造体の配列 entry_t * list[MAX];

次の関数にエントリが存在する場合は、bsearchを使用してエントリを取得しようとしています。

int addToList(entry_t * list[], int n, const char * name, int lineNr){
  int i = 0;
  int j = 0;
  entry_t * entry;
  entry_t * sentry;
  bool found = false;
  char * tmp = (char*) malloc(sizeof(char)*MAX);

  sentry = (entry_t *) bsearch(name,list,n,sizeof(entry_t *), cmpEntries2);
    if(sentry != NULL){
        printf("%s",sentry->name);
      i = sentry->n;
      sentry->lines[i] = lineNr;
      sentry->n++;
    }
   else {
    sentry = (entry_t *) malloc(sizeof(entry_t));
    strcpy(tmp,name);
    sentry->name = tmp;
    sentry->lines[0] = lineNr;
    sentry->n = 1;
    list[n] = sentry;
    n++;
  }

  return n;
}

int cmpEntries2(const void * a, const void * b){
  assert (a != NULL);
  assert (b != NULL);
  printf("DB %s %s\n",(const char*)a,(*(entry_t **)b)->name );
  return strcmp( (const char*)a, (*(entry_t **)b)->name );
}

私のデータベースログ

DB argc main
DB argv main
DB printf argc
DB printf argv
DB printf argc
DB printf argv
DB printf printf
0M:

奇妙なことは、それsentryはnullではありませんが、name何か奇妙なことです(ランダムなメモリ位置)。

THX

ensc

sentry(の結果を受け取るために使用される場合bsearch())はタイプでなければなりませんstruct entry_t **

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

構造体のポインタの配列を使用したbsearch

分類Dev

qsortを使用した構造体ポインターの配列のソート

分類Dev

Cでの構造体ポインタを使用した配列割り当て

分類Dev

構造体ポインタ-ポインタを使用して構造体の配列にアクセスする

分類Dev

配列を使用したCのポインターを持つ構造体の使用

分類Dev

構造体の配列と等しい構造体の配列へのポインタを設定します

分類Dev

C構造体/構造体の配列へのポインタの配列を宣言します

分類Dev

Cの構造体のポインタと配列を持つ構造体

分類Dev

bsearchを使用して構造体の配列内の要素を検索する

分類Dev

Cの構造体の配列でbsearch()関数を使用する

分類Dev

構造体を使用したCのポインタ

分類Dev

ポインタを使用した構造体の定義

分類Dev

関数ポインタを使用した構造体の初期化

分類Dev

構造体の配列と構造体へのポインタの配列

分類Dev

構造体の配列へのポインタを返す

分類Dev

構造体へのポインタの配列を作成する

分類Dev

構造体へのポインタの配列を初期化しています

分類Dev

構造体内に構造体へのポインタの配列を作成する

分類Dev

構造体内のポインターの配列を使用したRealloc

分類Dev

構造体のポインタから配列を取得する

分類Dev

構造体の配列へのポインタの配列

分類Dev

cのポインタを使用して構造体の配列項目を出力します

分類Dev

構造体の配列の最初の構造体へのポインタ?

分類Dev

ポインタc ++を使用して構造体の配列内の要素を交換する

分類Dev

構造体へのポインタの配列を作成し、作成された構造体に値を割り当てる方法

分類Dev

親構造体へのポインタを使用した構造体:最良のアプローチ

分類Dev

「ポインタを使用して構造体の配列にアクセスする」別の方法

分類Dev

C構造体へのポインタの配列へのポインタを渡します

分類Dev

C構造体へのポインタの配列へのポインタを渡します

Related 関連記事

  1. 1

    構造体のポインタの配列を使用したbsearch

  2. 2

    qsortを使用した構造体ポインターの配列のソート

  3. 3

    Cでの構造体ポインタを使用した配列割り当て

  4. 4

    構造体ポインタ-ポインタを使用して構造体の配列にアクセスする

  5. 5

    配列を使用したCのポインターを持つ構造体の使用

  6. 6

    構造体の配列と等しい構造体の配列へのポインタを設定します

  7. 7

    C構造体/構造体の配列へのポインタの配列を宣言します

  8. 8

    Cの構造体のポインタと配列を持つ構造体

  9. 9

    bsearchを使用して構造体の配列内の要素を検索する

  10. 10

    Cの構造体の配列でbsearch()関数を使用する

  11. 11

    構造体を使用したCのポインタ

  12. 12

    ポインタを使用した構造体の定義

  13. 13

    関数ポインタを使用した構造体の初期化

  14. 14

    構造体の配列と構造体へのポインタの配列

  15. 15

    構造体の配列へのポインタを返す

  16. 16

    構造体へのポインタの配列を作成する

  17. 17

    構造体へのポインタの配列を初期化しています

  18. 18

    構造体内に構造体へのポインタの配列を作成する

  19. 19

    構造体内のポインターの配列を使用したRealloc

  20. 20

    構造体のポインタから配列を取得する

  21. 21

    構造体の配列へのポインタの配列

  22. 22

    cのポインタを使用して構造体の配列項目を出力します

  23. 23

    構造体の配列の最初の構造体へのポインタ?

  24. 24

    ポインタc ++を使用して構造体の配列内の要素を交換する

  25. 25

    構造体へのポインタの配列を作成し、作成された構造体に値を割り当てる方法

  26. 26

    親構造体へのポインタを使用した構造体:最良のアプローチ

  27. 27

    「ポインタを使用して構造体の配列にアクセスする」別の方法

  28. 28

    C構造体へのポインタの配列へのポインタを渡します

  29. 29

    C構造体へのポインタの配列へのポインタを渡します

ホットタグ

アーカイブ