我正在为我的大学制作一个项目并使用MakeFile编译我的文件有麻烦,我有5个文件:api.c api.h datastruct.c datastruct.h main.c 在主要我有这个函数调用:DovahkiinP new = NuevoDovahkiin(); NuevoDovahkiin()函数在api.c中定义,也是DovahkiinP指向的结构DovahkiinSt
函数NuevoDovahkiin()在api.c中定义如下:
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.c中我都有#include" api.h" 我不知道sizeof(struct DovahkiinSt)的问题是什么
答案 0 :(得分:4)
使用sizeof(DovahkiinSt)
或sizeof(struct _DovahkiinSt_t)
。
sizeof(struct DovahkiinSt)
毫无意义,因为DovahkiinSt
只是struct _DovahkiinSt_t
的另一个名称。