可能性の重複:
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? –