在C中初始化哈希表?

时间:2015-11-05 23:46:25

标签: c hashtable heap-memory

我正在为我的C班做一些家庭作业,我不知道如何处理这个问题。我告诉他们从堆中分配一个带有htsize桶的哈希表,每个桶最初都是空的。'我已经通过命令行参数指定了htsize,并使其成为以下代码中的全局变量:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

int htsize;
int main(int argc, char *argv[])
{
    if (argc <= 1)
    {
        printf("Please declare a table size");
        return 1;
    }
    htsize = atoi(argv[1]);
}

但我不确定从堆中分配什么&#39;需要。有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

C不提供标准数据类型哈希表,您必须实现一个。另外,请避免使用atoi,因为这是一个非常不安全的问题。功能和它的使用通常是避免的。

已经有很多实现可以广泛使用,例如: https://gist.github.com/tonious/1377667