【发布时间】:2017-05-31 19:41:02
【问题描述】:
我需要用我得到的大小来初始化哈希表,我这里有问题t->arr_table[i]->key = NULL;
#include <stdio.h>
typedef struct element{
char * key;
char * value;
}element;
typedef struct HashTable{
int size; // size of the arr
element **arr_table; //arr of elements
}HashTable;
void init_hash(int size, HashTable * t)
{
if (size < 1)
return;
t->size = size;
t->arr_table = (element **)malloc(sizeof(element*)*size);
if (t->arr_table == NULL) // out memory
return;
int i;
for (i = 0; i < size; i++)
{ // initial list
t->arr_table[i]->key = NULL;
t->arr_table[i]->value = NULL;
}
}
void main()
{
HashTable *ht = (HashTable*)malloc(1*sizeof(HashTable));
int size_ht = 9;
init_hash(size_ht, ht);
printf("...\n");
return;
}
【问题讨论】:
-
“我有问题”。你不认为告诉我们问题到底是什么有意义吗?这不是常识吗?
-
因为我不知道为什么会这样@kaylum
-
您是在尝试创建一个指向元素的指针数组还是一个元素数组 在
HashTable结构内? -
为什么发生了什么?您实际上并没有告诉我们您观察到的不良行为。您一定已经观察到导致您出现问题的某些事情。那是什么东西?
-
我尝试在 HashTable @user3386109 中创建一个元素数组
标签: c dynamic hashtable dynamic-allocation