我正在尝试在c中实现哈希映射。我试图通过创建一个结构来保存哈希和密钥这样做。
struct bucket{
char * key;
char * value;
};
然后我创建这些结构的数组来保存所有相同但具有不同键的哈希值。像这样:
struct bucket * buckets;
buckets = malloc(numberOfBuckets);
然后我陷入困境的是制作一个数组来存储这些数组。我认为这样做是这样的:
struct bucket * arrayOfArrays;
arrayOfArrays = malloc(++numberOfKeys);
arrayOfArrays[0] = buckets;
这给了我错误:
incompatible types when assigning to type 'struct bucket' from type 'struct bucket *'
答案 0 :(得分:0)
struct bucket * arrayOfArrays;
arrayOfArrays[0] = buckets;
将此更改为
struct bucket ** arrayOfArrays;
arrayOfArrays = malloc(sizeof(struct bucket *) * numberOfArrays);
arrayOfArrays[0] = buckets;
它应该适合你。
您还需要更改第一个分配以获得足够的字节:
struct bucket * buckets;
buckets = malloc(sizeof(struct bucket) * numberOfBuckets);