我有一个要在编译时静态分配的结构,但我不确定如何返回指向内部结构的指针。
typedef struct
{
int d;
} innerStruct;
typedef struct
{
int a;
int b;
int c;
innerStruct inner;
} myStruct;
static myStruct m1;
innerStruct * getMyStructPtr()
{
myStruct * ptr = &m1;
return ptr->inner;
}
int main()
{
innerStruct * retval = getMyStructPtr();
return 0;
}
在线编译器链接:https://onlinegdb.com/SJAFJCy0Z
最佳答案
检查数据类型!!
您的函数 promise 返回一个 innerStruct *
,而您的代码试图返回一个 innerStruct
。它们既不相同也不兼容。修复其中一个并适本地使用它。
在函数调用之后,您可能想要编写
return &(ptr->inner); // return type innerStruct *
关于c - 在 C 中为内部结构返回类型时不兼容的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46963906/