这个函数这样写会不会造成不可预知的结果?
struct Node
{
int i;
string str;
}; //创建一个节点
Node GetSomething()
{
Node temp;
temp.i = 0;
temp.str = "abc";
return temp;
} //返回一个节点
void DoSomething()
{
Node First = GetSomething();
}
----
我觉得GetSomething()不正确,在调用的时候有可能会出错.因为返回的是栈上开辟的内容.
可我朋友说这样写没问题.而且说这是返回的值,跟栈没关系.First能得到值.
当然我也测试过,结果他是对的,可是我觉得返回栈上的内容还是会引发些问题.