- #include <iostream> 
- using namespace std; 
-   
- struct Object { 
- 	int somedata; 
- }; 
-   
- Object** globalPtrToPtr; // This is into another area called "data segment", could be heap or stack 
-   
- void function() { 
- 	Object* pointerOnTheStack = new Object; 
- 	globalPtrToPtr = &pointerOnTheStack; 
- 	cout << "*globalPtrToPtr = " << *globalPtrToPtr << endl; 
- } 
-   
- int main() { 
- 	 // This can give an access violation, a different value after the pointer destruction 
- 	 // or even the same value as before, randomly - Undefined Behavior 
- 	cout << "*globalPtrToPtr = " << *globalPtrToPtr << endl; 
- 	return 0; 
- } 
				I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IE9iamVjdCB7CglpbnQgc29tZWRhdGE7Cn07CgpPYmplY3QqKiBnbG9iYWxQdHJUb1B0cjsgLy8gVGhpcyBpcyBpbnRvIGFub3RoZXIgYXJlYSBjYWxsZWQgImRhdGEgc2VnbWVudCIsIGNvdWxkIGJlIGhlYXAgb3Igc3RhY2sKCnZvaWQgZnVuY3Rpb24oKSB7CglPYmplY3QqIHBvaW50ZXJPblRoZVN0YWNrID0gbmV3IE9iamVjdDsKCWdsb2JhbFB0clRvUHRyID0gJnBvaW50ZXJPblRoZVN0YWNrOwoJY291dCA8PCAiKmdsb2JhbFB0clRvUHRyID0gIiA8PCAqZ2xvYmFsUHRyVG9QdHIgPDwgZW5kbDsKfQoKaW50IG1haW4oKSB7CgkgLy8gVGhpcyBjYW4gZ2l2ZSBhbiBhY2Nlc3MgdmlvbGF0aW9uLCBhIGRpZmZlcmVudCB2YWx1ZSBhZnRlciB0aGUgcG9pbnRlciBkZXN0cnVjdGlvbgoJIC8vIG9yIGV2ZW4gdGhlIHNhbWUgdmFsdWUgYXMgYmVmb3JlLCByYW5kb21seSAtIFVuZGVmaW5lZCBCZWhhdmlvcgoJY291dCA8PCAiKmdsb2JhbFB0clRvUHRyID0gIiA8PCAqZ2xvYmFsUHRyVG9QdHIgPDwgZW5kbDsKCXJldHVybiAwOwp9