This code, which is clearly undefined behavior (because of dangling pointer), outputs the number 2, which is very worrisome. #include using namespace std; int* foo() { int y = 2; return &y; } int main() { int* x = foo(); cout I would recommend not using this for educational purposes yet; it could mislead students about pointer usage.
Fair point, I will definetly try to use a different compiler next time. Thanks for pointing this out!