나는 C 프로그래밍을 처음 사용합니다.불완전 유형에 대한 derefencing 포인터
는 그래서이 내 C 파일
#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)
에서 불완전 형에 대한 포인터를 역 참조라고 어디이 오류를 얻고있는 내 헤더 파일
typedef struct Rec *node;
입니다. 그것이 구조체에 있다는 것을 알고 있지만 그것을 고치는 방법을 모른다. 나는 시행 착오를 시도했지만, 나의 오류가 무엇이고 어디서 일어 났는지 이해하고 싶다.
추신 :이 프로그램은 나 자신을위한 것입니다.
'header.h'에서 무엇을보고? 'struct Rec' 또는'struct List'를 정의합니까? 그렇지 않다면, 그게 문제입니다.'List' 매개 변수는'struct Rec *'이고,'struct Rec'을 정의하지 않았다면 문제가 생깁니다. 'struct listing'은 다른 타입에 대한 포인터 인'struct List * '를 포함합니다. 코드에서'List' 타입은'struct List' 타입과 관련이 없습니다. –
'typedef struct Rec * node;'- ** 아니, 아니, 안돼, 안돼! ** 뒤에 포인터를 숨기지 마라. (오해의 소지가 다르게 명명 된)'typedef'! –