Hacker News new | ask | show | jobs
by lasagnaphil 2711 days ago
This code, which is clearly undefined behavior (because of dangling pointer), outputs the number 2, which is very worrisome.

    #include <iostream>
    using namespace std;
    
    int* foo() {
        int y = 2;
        return &y;
    }
    int main() {
        int* x = foo();
        cout << *x << endl;
        return 0;
    }
I would recommend not using this for educational purposes yet; it could mislead students about pointer usage.
1 comments

Fair point, I will definetly try to use a different compiler next time. Thanks for pointing this out!