Я пытаюсь создать таблицу ha sh в C с нуля. Вот таблица ha sh с 1 байтовыми (char*
) ключами и значениями Я хочу создать, за исключением того, что я хочу, чтобы моя таблица ha sh хранила ключи и значения в виде строк до 32 символов длинный (char key[32], char value[32]
). Вот мой struct
:
#define KV_SIZE 32
typedef struct hash_entry{
char key[KV_SIZE];
char value[KV_SIZE];
struct hash_entry* next;
} hash_entry;
У меня возникли проблемы с формированием функции с именем create_entry()
, потому что я не знаю, как присвоить значениям мои struct
строки, ключ и значение.
// create an entry
hash_entry* create_entry(char key[KV_SIZE], char value[KV_SIZE]){
printf("%s\n", key);
hash_entry* entry = (hash_entry*)malloc(sizeof(hash_entry*));
// I want entry->key and entry->value to store a string up to 32 chars long
strncpy(entry->key, key, strlen(key)); // Error
strncpy(entry->value, value, strlen(value)); // Error
entry->next = NULL;
return entry;
}
Пока что мне кажется, что мне нужно, чтобы мои entry
оставались объявленными как указатели (hash_entry* entry
), а не не-указатели (hash_entry entry
), чтобы иметь возможность связывать их позже.