问题描述
我是C语言的新手,只是一个关于返回结构的问题。我听到有人说可以返回一个结构。例如:
struct MyObj{
int x,y,z;
};
struct MyObj foo(){
struct MyObj foo_a;
foo_a.x = 10;
foo_a.y = 10;
foo_a.z = 10;
return foo_a;
}
int main () {
struct MyObj main_a = foo();
return 0;
}
我的问题是:
foo_a
在foo
的堆栈中,因此在foo
完成后,堆栈将被展开,这意味着foo_a
实际上不在{{ 1}}函数的堆栈,main
持有的指针main_a
实际上是非法指针,那么它将如何工作?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)