下面的代码会导致分段错误吗?
struct Dim {
int x, y, z;
};
Dim set_dim(int a) {
Dim l;
l.x=a;
l.y=a;
l.z=a;
return l;
}
int sum(const Dim &m) {
int s=m.x+m.y;
return s;
}
main() {
cout<<sum(set_dim(5))<<endl;
}
我认为它可以,因为引用了 set_dim 中的局部变量“l”,换句话说,对现在超出范围的变量的引用。但它的工作量永远不会减少