Dynami c выделение массива, в массив другого типа - PullRequest
1 голос
/ 13 марта 2020

Предположим, что HashEntry - это структура, которая имеет указатель на список (заголовок). Bucket of HashTable содержит указатель на Bucket Entries (массив записей). Структура Bucket Entry имеет ключ char *.

struct BucketEntry{
    char* key;
    //irrelevant data
};

struct Bucket{
    BucketEntry* entries;
    struct Bucket* next;
    int counter; // counts how keys are in.
};

struct HashEntry{
    struct Bucket* head;
};

Таблица ha sh представляет собой указатель типа HashEntry * на массив записей, а заголовки инициализируются в NULL

struct HashEntry* table = malloc(buckets*sizeof(struct HashEntry));
for(i = 0; i < buckets; i++){
    table[i].head = NULL;
}

После что, я создаю ведро, подобное этому, и назначаю его правильному ha sh ceil:

struct Bucket* bucket = malloc(sizeof( struct Bucket));
table[hash].head = bucket;

Как правильно распределить массив записей в ведре кванта x ? После распределения, как правильно назначить его в нужное ведро & Ha sh ceil?

Спасибо и извините за мой engli sh.

...