【发布时间】:2014-05-21 23:50:19
【问题描述】:
我正在为我的大学制作一个项目并使用 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) 有什么问题
【问题讨论】:
-
@Oswald 有正确的答案,但您可以通过使用
ptr = calloc(1, sizeof *ptr);表单完全避免此问题
标签: c gcc compilation compiler-errors sizeof