c - 取消引用指向不完整类型的指针。返回结构指针

标签 c pointers struct parameter-passing

我不明白我做错了什么。我想从函数内部传递一个结构指针以在外部使用它(我知道我可以传递整个结构但我想正确学习用户指针)。

这是函数:

struct tm* GetActualTime()
{
//VAR DECLARE
time_t rawtime;
struct tm *timeinfo=malloc(sizeof(struct tm));

time ( &rawtime );
timeinfo = localtime ( &rawtime );
return timeinfo;
}

这就是我在 main 中的调用方式:

int main(void){
struct tm *real_time;

real_time=GetActualTime();
printf("%d:%d%d",real_time->tm_hour,real_time->tm_min,real_time->tm_sec);
}

我得到错误:

dereferencing pointer to incomplete type

我已经在寻找这个错误,我知道有更多的线程,但它只指问题,例如:错误的结构声明(女巫,我认为这不是问题,因为它是 time.h 库中的结构)或错误调用(而不是 rea)

最佳答案

您需要包含stdlib.htime.h 文件,stdlib.h 用于malloc 和time.h 用于时间相关函数.随着这个包含程序成功运行..我已经检查并提供了正确的输出。

关于c - 取消引用指向不完整类型的指针。返回结构指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40058325/

相关文章:

将位转换为人类可读的格式

c - 递归二分查找

loops - 如何解析CF结构体

c++ - 以编程方式更改桌面背景

c - 从两个相交链表中找到相交节点

c++ - 带有对象指针的运算符函数

swift - "public private(set)"访问修饰符如何工作?

c - C 中的结构体数组

c - C 中结构的 Malloc

c - C 中的隐式函数声明