Kann auf den Speicher einer lokalen Variablen außerhalb seines Gültigkeitsbereichs zugegriffen werden?

Ich habe den folgenden code.

int * foo()
{
    int a = 5;
    return &a;
}

int main()
{
    int* p = foo();
    cout << *p;
    *p = 8;
    cout << *p;
}

Und der code ist nur im Betrieb mit keine runtime-Ausnahmen!!!

Wurde die Ausgabe 58

Wie kann es sein? Ist nicht die Erinnerung an eine lokale variable unzugänglich außerhalb seiner Funktion?

InformationsquelleAutor der Frage |

Schreibe einen Kommentar