gpt4 book ai didi

c - Glib 哈希表存储了不正确的键

转载 作者:行者123 更新时间:2023-11-30 16:00:23 26 4
gpt4 key购买 nike

我是第一次使用 glib,并且在使用哈希表时遇到了一些问题。我正在尝试使用 uint32_t 作为键。

GHashTable *fwd_table = g_hash_table_new(g_int64_hash, g_int64_equal);

// some code here

while(something is true) {
uint32_t net_addr = ip_strtoint(addr) - net_mask(addr); // value of the key

printf("The net_addr is %u\n",net_addr);
g_hash_table_insert(fwd_table, g_memdup(&net_addr, sizeof(net_addr)),
g_memdup(num_id, sizeof(num_id)));

}

void dump_pair (const uint32_t *key, const char *value) {
g_print ("Key: %u Value: %s\n", key, value);
}

g_hash_table_foreach (fwd_table, (GHFunc)dump_pair, NULL);

输出为:

The net_addr  is 3232301056
The net_addr is 3232251904
The net_addr is 3232284672
The net_addr is 3232251686
The net_addr is 3372220416

Key: 6307440 Value: 1
Key: 6307536 Value: 2
Key: 6307728 Value: 5
Key: 6307344 Value: 3
Key: 6307632 Value: 7

这些键应该与 net_addr 相对应。你知道我在这里做错了什么吗?

最佳答案

dump_pair() 中取消引用键指针怎么样?

g_print ("Key: %u Value: %s\n", *key, value);

关于c - Glib 哈希表存储了不正确的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7795687/

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