我想创建用于存储指针的哈希表(即某个节点的内存位置)。
为此,我创建了一个double
数据类型的数组(因为double和pointer在我的系统上都有相同的大小)。我将地址存储到数组元素中。但它给了我错误。
代码:
struct node* temp = head;
int k = 0;
while (temp->next)
{
addresses[k++] = (double)temp; // error is here.
temp = temp->next;
}
这是错误:
addresses[k++] = (double)temp;
我认为类型转换应该是问题所在。错误消息为:pointer value used where a floating point value was expected
同样,当我获取数组元素并存储在一些指向节点的指针时会出错。
因此,我应该如何创建用于存储指针的哈希表?
答案 0 :(得分:4)
您不必对指针进行类型转换。只需将“地址”设为指向节点结构的指针数组即可。这是代码:
struct node* addresses[some_size];
struct node* temp = head;
int k = 0;
while (temp->next)
{
addresses[k++] = temp; //no typecasting
temp = temp->next;
}