Возвращение адреса поведения локальной переменной [дубликат]

Possible Duplicate:
Can a local variable's memory be accessed outside its scope?

вход:

#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();
}

Выход:

13 -1077824828 -1077824828

Может кто-нибудь объяснить, что произошло в стеке и ОС? Почему результат изменился с 13 на мусор после получения значения указателя?

Ответы на вопрос(2)

Ваш ответ на вопрос