这是我在做什么的一个粗略的想法:
Map map;
create_map(map); //initialize map
Value x,y;
while(...){
...
x = ...;
y = ...;
put(map, x, (void *) &y);
...
}
Map 的类型为 {Value, (void *)}。地图是自定义编写的,但我没有编写。我试图弄清楚它是在哪里定义的,如果我找到它会更新。映射所做的只是将 Value 和 (void *) 的关联存储在某种结构中。
我认为正在发生的事情是插入到地图中的值 y 没有得到我想要的值。它在 while 循环执行后存储 y 的任何值。我希望每次迭代的地址都不同,并指向不同版本的 y。
因此,对于上面的代码,对于映射中的任何键 X,它们都指向相同的值。我希望他们指向不同的价值观。