У меня есть следующие списки, одна из упаковок, сделанных из соединенных конструкций, одна из грузовиков, сделанных из статического массива.
typedef struct
{
int id_pack;
int weight_kg;
int value;
int priority; //low 0, high 1
struct pack* next;
} pack;
typedef struct pack head; //declaring a struct head of type pack which is the head of a list of packs
typedef struct
{
int id_truck;
head* p_head; //pointer to the list of packs of each truck
} truck;
int main()
{
truck dogana[N]; //list of trucks made with a static array
}
Теперь я хочу создать функцию, которая проверяет, является ли приоритет хотя бы одной упаковки в списке упаковок первого грузовика высоким приоритетом (1).
Чтобы сделать это, я подумал о создании временного указателя, чтобы не потерять ссылку на заголовок списка пакетов (он мне нужен для других вещей, которые я должен делать внутри функции); это моя функция.
void uscita_dogana (truck dogana[])
{
head* temp;
temp = dogana[0].p_head; // I use temp to avoid losing the head
while (temp != NULL) //cicle to run trough the packs
{
if (temp->priority == 1) //check the priority of the pack
{
//INSTRUCTIONS
}
}
}
Теперь компилятор выдает ошибку при
temp-> priority == 1
который говорит "разыменование указателя на неполный тип" head {aka struct pack};
Я пробовал много разных вещей, чтобы решить эту проблему, но не смог.
Я обратился за помощью и обыскал сайт, но не смог найти правильного решения, надеюсь, кто-нибудь мне поможет!
Извините за общую путаницу, английский не мой родной язык, и я только начал кодировать. Заранее спасибо!