1168 Stimmen

Kann auf den Speicher einer lokalen Variablen außerhalb ihres Bereichs zugegriffen werden?

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?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X