重複の可能性:
ローカル変数のメモリにそのスコープ外でアクセスできますか?
次の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;
}