Wenn ich richtig verstehe, sollen Variablen, die nicht dynamisch zugeordnet sind, am Ende ihres Bereichs gelöscht werden. Allerdings wollte ich es versuchen, mit diesem Code aus (was meiner Meinung nach nicht korrekt ist, wie soll ich die dynamische Zuordnung verwenden):C++ - Bereiche und Zuordnung
int* function()
{
int a = 3;
return &a;
}
int main(int argc, char const *argv[]) {
int* a(function());
std::cout << *a << std::endl; // prints 3
}
Warum kann ich immer noch den Wert der eine Variable zugreifen, indem die Verwendung von Zeiger zurückgegeben von der Funktion, wenn es nicht mehr existieren soll?
Eigentlich ist er ** sehr unglücklich **, dass der Code nicht sofort abstürzte. – WhiZTiM
... Hängt davon ab, wie du die Welt siehst –
Was meinst du mit Glück? Es scheint jedes Mal zu funktionieren – MaxV37