c - gcc 编译错误 ‘sizeof’ 对不完整类型 ‘struct LadoSt’ 的无效应用

标签 c gcc compilation compiler-errors sizeof

我正在为我的大学制作一个项目并使用 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/

相关文章:

compilation - 无法弄清楚如何运行 .scm(使用 guile 或 scm)文件

css - LESS.js 编译了 css 但没有应用它?

c - AM_LDFLAGS 和 LDFLAGS 有什么区别

c++ - 相当于 m256_f32 的 GCC

matlab - 如何使用cmake命令更改MATLAB路径以编译FLANN的mex文件?

c - 从 fgets() 输入中删除尾随换行符

GCC 的 C++ 库问题

c - 生成所有长度为n且设置k位的二进制字符串。(需要写在C上)

c - 返回函数是否​​比非返回函数有更多的性能开销?

c++ - 如何使用带有 C 的 ffmpeg 拦截编码的视频数据?