可能重複:
Can a local variable's memory be accessed outside its scope?爲什麼返回指向本地內存的指針不會摺疊?
我以爲以下調用到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;
}
也許將函數'f'重命名爲'demo_undefined_behavior'並得到一個A? – 2012-04-27 15:48:46