我想接收类型为结构的函数的返回值。这就是我所拥有的:
这就是我定义结构的方式
typedef struct _content {
int length;
char **lines;
} content_t;
主要调用的函数:
read_content("example.txt");
这就是我的主要调用的函数:
content_t *read_content(char *filename)
{
struct _content cont;
return cont; //here I try to return my struct cont
}
是否有可能在类型为结构的函数中返回一个值?我该如何解决我的问题?
感谢您的帮助!
最佳答案
您的函数类型不匹配。它返回指向 content_t
的指针(即 content_t *
),但您返回的是 content_t
的实例。
您需要更改函数以返回指向 content_t
的指针。但是,您不能返回局部变量的地址,即 return &cont;
,因为函数返回时变量将超出范围,返回时指针值将无效。然而,您可以做的是在函数中动态分配内存并返回指向该内存的指针。
content_t *read_content(char *filename)
{
content_t *cont = malloc(sizeof(*cont));
...
return cont;
}
不要忘记释放
调用函数中的内存。
关于c - 如何返回结构类型的函数的返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54407128/