我不明白爲什麼下面的代碼做它做什麼。指針的指針在哈希表
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
,爲了做鏈接。在此之後,我決定嘗試爲數組分配dinamycally內存,所以我嘗試使用(我認爲)相當於NodeT* (*mockTable)
。
我的問題是:爲什麼我使用(*hashTable)[i].info
,而不是(*hashTable)[i]->info
?至於我擔心的,是hashTable
指向指針數組來NodeT
指針,所以這不應該發生。我在這裏錯了什麼?