爲什麼不能我訪問指針「細胞」等的陣列?我已經分配了相應的內存,爲什麼不在這裏像一個數組?它就像一個數組,用於基本數據類型的指針。錯誤:無效類型參數「 - >」(具有「結構節點」)
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
#define MAX 10
struct node
{
int e;
struct node *next;
};
typedef struct node *List;
typedef struct node *Position;
struct Hashtable
{
int Tablesize;
List Cells;
};
typedef struct Hashtable *HashT;
HashT Initialize(int SIZE,HashT H)
{
int i;
H=(HashT)malloc(sizeof(struct Hashtable));
if(H!=NULL)
{
H->Tablesize=SIZE;
printf("\n\t%d",H->Tablesize);
H->Cells=(List)malloc(sizeof(struct node)* H->Tablesize);
它應該不像從這裏的數組行事?
if(H->Cells!=NULL)
{
for(i=0;i<H->Tablesize;i++)
以下行是拋出該錯誤的那些
{ H->Cells[i]->next=NULL;
H->Cells[i]->e=i;
printf("\n %d",H->Cells[i]->e);
}
}
}
else printf("\nError!Out of Space");
}
int main()
{
HashT H;
H=Initialize(10,H);
return 0;
}
我得到的錯誤是在標題中錯誤:invalid type argument of '->' (have 'struct node').
首先,縮進代碼。 – Kunal
'H-> Cells - > [i] e'絕對不是正確的語法。 – godel9
然後注意'H-> Cells - > [i] e = i;'不是C語法。 –