Я новичок в программировании на С.указатель дефрагментации на неполный тип
Так что это в моем файле заголовка
typedef struct Rec *node;
Это в моем C File
#include <stdio.h>
#include <stdlib.h>
#include "header.h"
typedef struct Rec *List;
typedef struct Listing{
node *items;
int numelems;
struct List *next;
}Listing;
int sum(List L)
{
if(L->items == NULL)
{
return NULL;
}
return (L->head + sum(L->tail));
}
int main(void)
{
return 1;
}
Я получаю эту ошибку, когда он говорит разыменования указателя к неполному типу в if(L->items == NULL)
. Я знаю, что это в моей структуре, но я не знаю, как это исправить. Я пробовал проб и ошибок, но я хотел бы понять, что и где моя ошибка.
PS: эта программа предназначена только для меня.
Что в 'header.h'? Определяет ли он 'struct Rec' или' struct List'? Если нет, в этом проблема - ваш параметр 'List' является' struct Rec * ', и если вы еще не определили' struct Rec', у вас возникли проблемы. Ваш 'struct Listing' содержит' struct List * ', который также является указателем на другой тип. Обратите внимание, что в вашем коде тип 'List' не связан с типом' struct List'. –
'typedef struct Rec * node;' - ** no no no no please no! ** Не скрывайте указатели позади (вводящим в заблуждение по-разному) 'typedef's! –