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;
}
Als variable sum
ist lokal für die Funktion addition
so die Variable sollte, sobald die Programmsteuerung bewegt sich aus der Funktion zerstört werden, aber es ist nach wie vor geben die Ausgabe 13
. Warum?Wie dieser Codeabschnitt auf die lokale Variable außerhalb der C++ - Funktion zugreifen?
Compiler: g++ 4.8.2 on Ubuntu 14.04 LTS
Nein, es funktioniert nicht mit dem Optimierungsgrad -O3. Warum? –