可能重复:
Pointer to local variable
Can a local variable's memory be accessed outside its scope?
int* fun()
{
int i = 10;
int*ptr = &i;
return ptr;
}// variable i and ptr will be destroyed automatically as ctrl goes out of scope
void main()
{
cout<<"i: "<<*(fun())<<endl;
getch();
}
输出:i:10
我怀疑输出为i=10
的原因。
根据我的理解,只要fun()超出范围,变量i就会被自动销毁,所以o / p应该是一些垃圾值......
我在Visual Studio 2008上执行了这个