问题描述
使用此代码:
#include <stdio.h>
struct S { int x; int y; };
struct S foo(int a,int b) {
struct S s = { a,b };
return s;
}
int main() {
int a;
a = foo(2,4).x;
printf("%d\n",a);
return 0;
}
它按预期工作。我担心的是返回的struct对象的生存期。我知道有关包含数组的结构的临时生存期的标准讨论,但是在这种情况下,结构中没有数组。
所以我猜想foo()
一结束,它的返回值就应该死了,对吧?但是显然,我们仍然可以访问x
成员。为什么?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)