내 대학용 프로젝트를 만들고 메이크 파일 im에 문제가있는 파일을 컴파일하는 중입니다. api.c api.h datastruct. c datastruct.h main.c 주에서는이 함수 호출이 : DovahkiinP new = NuevoDovahkiin(); NuevoDovahkiin() 함수는 다음과 같이 api.c api.c에 정의되어 있으며 DovahkiinPgcc 잘못된 형식의 'struct LadoSt'에 대한 'sizeof'의 오류 응용 프로그램을 컴파일
NuevoDovahkiin 함수()에 의해 지시 된 구조체 DovahkiinSt 정의된다 :
DovahkiinP NuevoDovahkiin(){
DovahkiinP new_dovahkiin = NULL;
new_dovahkiin = calloc(1, sizeof(struct DovahkiinSt)); //Here is the problem
if(new_dovahkiin != NULL){
new_dovahkiin->root = NULL;
new_dovahkiin->source = NULL;
new_dovahkiin->sink = NULL;
new_dovahkiin->tempflux = 0;
}
return (new_dovahkiin);
}
api.h에 구조 DovahkiinSt의 정의입니다 :
typedef struct _DovahkiinSt_t {
vertex root;
vertex source;
vertex sink;
u64 tempflux;
}DovahkiinSt;
typedef DovahkiinSt *DovahkiinP;
및 api.c 및 main.ci 모두
은 사용법 #include 내가 sizeof의 (구조체 DovahkiinSt)의 문제이다 것을 얻을 해달라고 "api.h" 이는
@Oswald는 올바른 대답을 가지고 있지만'ptr = calloc (1, sizeof * ptr) '형식을 사용하여이 문제를 완전히 피할 수 있습니다. –