5 ms·
This code, which is clearly undefined behavior (because of dangling pointer), outputs the number 2, which is very worrisome. #include <iostream> using
by lasagnaphil 8y 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.
- goalexboxer 8y agoFair point, I will definetly try to use a different compiler next time. Thanks for pointing this out!