可能重复:
可以在其范围之外访问局部变量的内存吗?
我认为以下对 f() 的调用将获得指向编译器不会处理的本地内存的指针(根据教科书,这很危险)。但是,它仍然运作良好。不确定这是否安全。
#include <iostream>
using namespace std;
int * f()
{
int v[1000000];
for (int i=0; i<1000000; i++) v[i]=i;
cout<<v[7]<<endl;
return v;
}
int main()
{
int * v = f();
cout<<v[7]<<endl;
return 0;
}