菜鸟学习C语言——结构体类型函数返回值问题

最近码代码时遇到一个返回值的问题,一直报warning,后来查了下资料才知道原因,现在做下记录。

typedef struct
{
    int a;
    int b;
}Test_T;

Test_T c[3];
Test_T* fun(void)
{
    return &c;
}

一开始是这样写的,但是在return的地方报 warning: return from incompatible pointer type [enabled by default],然后我又查了下关于***数组首地址***的问题,可参考

https://blog.csdn.net/zjq1042970687/article/details/107929904

果然是这里的问题,函数是Test_T类型的,而&c是代表数组首地址,严格来说是Test_T[]类型的,返回类型与函数类型不一致,因此会出现warning。此处应该用return c或者return &c[0]

你可能感兴趣的:(c语言,指针,数据结构)