Ich habe den folgenden Code.
#include <iostream>
int * foo()
{
int a = 5;
return &a;
}
int main()
{
int* p = foo();
std::cout << *p;
*p = 8;
std::cout << *p;
}
Und der Code läuft einfach so, ohne Laufzeitausnahmen!
Die Ausgabe war 58
Wie kann das sein? Ist der Speicher einer lokalen Variablen nicht außerhalb ihrer Funktion unzugänglich?