我有这段代码:
typedef struct Table* TableP;
typedef struct DataPointer
{
void* dataP;
void* key;
}DataPointer;
typedef struct HashTableSet
{
DataPointer *hashSet[2];
}HashTableSet;
typedef struct Table
{
int size, d;
HashTableSet *hashTableSet;
}Table;
void nullTable(size_t)
{
TableP myTable = (Table*)malloc(size_t*sizeof(HashTableSet)*sizeof(DataPointer);
Table table = *tableP;
int i = 0;
for(; i < tableP->size; i++)
{
int j = 0;
for (; j < MAX_ROW_ELEMENTS ; ++j)
{
DataPointer data;
DataPointer *dataP = &data;
data.key = NULL;
data.dataP = NULL;
table[i][j] = data;
}
}
}
我的目标是将Table作为HashTableSet数组,并将HashTableSet作为DataPointer数组,并在null函数中尝试创建表中所有要初始化为NULL的点(atlist指针)。但我收到此错误消息:
error: subscripted value is neither array nor pointer nor vector
table[i][j] = data;
那么我做错了什么?我想我需要一些指向指针动作的指针,但我不知道如何在每个维度中都有不同类型的2Dimentional数组的情况下如何做。