Структура кода У меня есть структура «entry», которая хранится в круговом списке «bucket», который хранится в хэш-таблице. «Запись» имеет два поля (а и б), а также при поиске поля а и обратного поля Ь, я пытаюсь сделать это следующим образом:C-программирование - компилятор говорит мне, что я разыскиваю неполный тип
ht_lookup(d.dict->items[bucket],field_a)
Я искал на этом и решение, похоже, должно включать заголовочный файл, который определяет ведро, но я включил заголовочный файл, который определяет ведро, то есть круглый список, поэтому я не понимаю, как этот тип является неполным. Есть ли что-то, что я могу сделать с кодом, так как это сделать полный тип?
Я нахожусь в конце своего ума, любая помощь действительно оценена.
struct dictionary
{
ht * dict;
} d;
struct entry
{
char word[MAX_WORD_SIZE];
char desc[MAX_DESC_SIZE];
};
Это после
`#include "ht.h"`
Который, где определен хеш-таблица, которая является то, что каждое ведро:
ht * new_ht(int max, hashfun h1, getkeyfun getkey)
{
int i;
ht * t = (ht*)malloc(sizeof(ht));
t->items = (clist**)malloc(max * sizeof(clist*));
t->size = 0;
t->h1 = h1;
t->getkey = getkey;
t->max = max;
for (i=0; i<max; i++)
t->items[i] = new_clist();
return t;
}
НКУ выводит эту ошибку:
ошибка: разыменование указателя на неполный тип
показать ваш код (где определен ведомый список) и (по крайней мере) строку, в которой компилятор выдает ошибку (включая сообщение об ошибке). В противном случае мы можем просто догадаться, что вы делаете неправильно. – mfro
Просьба показать ваше определение структуры и структуры. – Heeryu
Отредактировано сообщение, чтобы переместить '^' из строки кода, чтобы он не выглядел как синтаксическая ошибка. –