Rückgabe einer Adresse mit lokalem Variablenverhalten [duplizieren]

Mögliche Duplikate:
Kann auf den Speicher einer lokalen Variablen außerhalb ihres Gültigkeitsbereichs zugegriffen werden?

Eingang:

#include <stdlib.h>
#include <stdio.h>
int func2(void);
int* func1(void);

int func2(void)
{
    int* b;
    b = func1();
    printf("%d", *b);
    printf("%d", *b);
    printf("%d", *b);
}

int* func1()
{
    int a = 13;
    return &a;
}

int main()
{
    func2();
}

Ausgabe:

13 -1077824828 -1077824828

Kann jemand erklären, was im Stack und im Betriebssystem passiert ist? Warum hat sich das Ergebnis von 13 auf Garbage geändert, nachdem der Wert des Zeigers ermittelt wurde?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage