У меня есть следующий код.
#include <iostream>
int * foo()
{
int a = 5;
return &a;
}
int main()
{
int* p = foo();
std::cout << *p;
*p = 8;
std::cout << *p;
}
И код работает только без исключений во время выполнения!
Выходной сигнал составил 58
Как это может быть? Не является ли память локальной переменной недоступной вне ее функции?