指向哈希表中指针的指针
Pointers to pointers in hash Tables
我不太明白为什么下面的代码会这么做。
void initializeTable()
{
NodeT* (*hashTable) ;
*hashTable=(NodeT*)malloc(30*sizeof(NodeT));
int i;
for(i=0;i<30;i++)
{
(*hashTable)[i].info=(char*)malloc(10*sizeof(char));
strcpy((*hashTable)[i].info,"a");
cout<<(*hashTable)[i].info<<" ";
}
}
我正在努力了解哈希表是如何工作的。在我的程序的第一个版本中,我使用了类似NodeT* hashTable[arraySize]
的东西来创建指向NodeT
的指针数组,以便进行链接。在这之后,我决定尝试为数组分配普通内存,所以我尝试使用(我认为)等效的NodeT* (*mockTable)
。
我的问题是:为什么我必须使用(*hashTable)[i].info
,而不是(*hashTable)[i]->info
?就我而言,hashTable
是一个指向指向NodeT
的指针数组的指针,所以这不应该发生。我做错了什么?
你有了基本的想法,但似乎你计算错了指针你的hashTable是一个指向指针(**)的指针,当你在strcpy中访问它时,你实际上会得到这个双指针的值,第1个是数组索引[i],第二个是*hashTable,当访问一个调用其中value的变量时。因此,如果定义一个duel指针变量支柱温度;并且您想要访问其中的字段你可以*temp[i].字段但如果您只想访问单个指针级别(相同的**temp),则需要:temp[i]->字段或*temp->字段两者都只"弹出"最顶端的指针
相关文章:
- 有没有一种方法可以创建一个带有哈希表的数据库,该哈希表具有恒定时间查找功能
- 如何将这个C++哈希表转换为动态扩展和收缩,而不是使用硬设置的最大值
- 用C++将哈希表写入文件并从文件中恢复
- C++中的并发哈希表
- 在具有开放寻址的哈希表中插入节点 [优化逻辑]
- 与C++哈希表的基础知识混淆
- 调整大小和复制哈希表数组中的元素
- 带链接的基本哈希表
- C++哈希表中,两个相同的实现,但一个给出错误
- 如果索引不是整数,我们如何在 C++ 中插入哈希表
- 查找项目在哈希表中的位置
- 为什么C++ STL 哈希表 (unordered_map) 不接受向量作为键
- C++哈希表 - 如何解决自定义数据类型作为键的unordered_map冲突?
- 使用哈希表设置实现
- 同时写入和读取哈希表
- 创建用于存储某些指针值的哈希表
- 跟进哈希表 C++,this->next = NULL 指针
- C++ - 带有函数指针的哈希表
- 如何减少哈希表槽中的指针/地址宽度
- 指向哈希表中指针的指针