0
int * addition(int arr[])
{
int sum=0;
for(int i=0;i<4;i++)
sum+=arr[i];
return ∑
}
int main()
{
int arr[4]{1,3,4,5}, * ptr=addition(arr);
cout<<*ptr<<endl;
return 0;
}
はそう変数は、すぐに機能のうちプログラム制御の移動に伴って破壊されなければならないが、それはまだ出力13
を与えている機能addition
に対してローカルです。どうして?C++の外部でローカル変数にアクセスするこのコードはどのように機能しますか?変数<code>sum</code>として
Compiler: g++ 4.8.2 on Ubuntu 14.04 LTS
いいえ-O3レベルの最適化では機能しません。どうして? –