gpt4 book ai didi

c - c99 中结构体数组的数组

转载 作者:行者123 更新时间:2023-11-30 20:32:32 25 4
gpt4 key购买 nike

我正在尝试在c中实现 HashMap 。我试图通过创建一个结构来保存散列和 key 来解决这个问题。

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 *'

最佳答案

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);

关于c - c99 中结构体数组的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47302374/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com