【发布时间】:2021-10-15 11:15:33
【问题描述】:
我试图在函数内部定义一个结构并在函数末尾返回该结构,但无法找出正确的方法来执行此操作。 例如:
struct Animals test() {
struct Animals {
int* age;
char* name;
}
return struct Animals;
}
【问题讨论】:
-
不能那样工作。该结构需要在所有使用它的函数都可见的范围内定义。如果您尝试动态创建类型,C 不会这样做。
-
您也不要在
return语句中输入类型名称,它必须是一个表达式。 -
你可以 malloc 它并返回一个指向创建的结构的指针。如果你静态分配它,它会在函数调用的栈帧中结束,返回后无效。
-
结构定义不是变量,它们是类型定义。您先定义一个结构,然后再声明该类型的变量。