我正在为我的大学制作一个项目并使用 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) 有什么问题
最佳答案
使用 sizeof(DovahkiinSt)
或 sizeof(struct _DovahkiinSt_t)
。
sizeof(struct DovahkiinSt)
没有意义,因为 DovahkiinSt
只是 struct _DovahkiinSt_t
的不同名称。
关于c - gcc 编译错误 ‘sizeof’ 对不完整类型 ‘struct LadoSt’ 的无效应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23795674/