fork download
  1. #include <iostream>
  2.  
  3.  
  4. class Object
  5. {
  6. public:
  7. Object()
  8. {
  9. _value = new int{42};
  10. }
  11.  
  12. ~Object()
  13. {
  14. delete _value;
  15. _value = nullptr;
  16. }
  17.  
  18. int getInt()
  19. {
  20. return *_value;
  21. }
  22.  
  23. int* _value;
  24. };
  25.  
  26. class Object2
  27. {
  28. public:
  29. Object2(Object* object)
  30. {
  31. _object = object;
  32. }
  33.  
  34. ~Object2()
  35. {
  36. delete _object;
  37. _object = nullptr;
  38. }
  39.  
  40. int getInt()
  41. {
  42. return _object->getInt();
  43. }
  44.  
  45. Object* _object;
  46. };
  47.  
  48. void function_calling_object2(Object& object)
  49. {
  50. Object2 object2(&object);
  51.  
  52. std::cout << "function_calling_object2: " << object2.getInt() << std::endl;
  53. }
  54.  
  55. int main() {
  56. Object object;
  57. std::cout << "Object in main 1: " << object.getInt() << std::endl;
  58. function_calling_object2(object);
  59. std::cout << "Object in main 2: " << object.getInt() << std::endl;
  60. return 0;
  61. }
Runtime error #stdin #stdout #stderr 0s 3476KB
stdin
Standard input is empty
stdout
Object in main 1: 42
function_calling_object2: 42
stderr
*** Error in `./prog': munmap_chunk(): invalid pointer: 0xbf80a3fc ***
======= Backtrace: =========
/lib/i386-linux-gnu/i686/cmov/libc.so.6(+0x75e72)[0xb759be72]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(+0x76525)[0xb759c525]
/usr/lib/i386-linux-gnu/libstdc++.so.6(_ZdlPv+0x1f)[0xb777e82f]
./prog[0x80488c8]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(__libc_start_main+0xf5)[0xb753f8f5]
./prog[0x8048971]
======= Memory map: ========
08048000-08049000 r-xp 00000000 09:03 16255889   /home/MgDJk5/prog
08049000-0804a000 rw-p 00000000 09:03 16255889   /home/MgDJk5/prog
08540000-08561000 rw-p 00000000 00:00 0          [heap]
b7524000-b7526000 rw-p 00000000 00:00 0 
b7526000-b76cf000 r-xp 00000000 09:03 16394299   /lib/i386-linux-gnu/i686/cmov/libc-2.17.so
b76cf000-b76d0000 ---p 001a9000 09:03 16394299   /lib/i386-linux-gnu/i686/cmov/libc-2.17.so
b76d0000-b76d2000 r--p 001a9000 09:03 16394299   /lib/i386-linux-gnu/i686/cmov/libc-2.17.so
b76d2000-b76d3000 rw-p 001ab000 09:03 16394299   /lib/i386-linux-gnu/i686/cmov/libc-2.17.so
b76d3000-b76d6000 rw-p 00000000 00:00 0 
b76d6000-b76f1000 r-xp 00000000 09:03 16394343   /lib/i386-linux-gnu/libgcc_s.so.1
b76f1000-b76f2000 rw-p 0001a000 09:03 16394343   /lib/i386-linux-gnu/libgcc_s.so.1
b76f2000-b76f3000 rw-p 00000000 00:00 0 
b76f3000-b7734000 r-xp 00000000 09:03 16394296   /lib/i386-linux-gnu/i686/cmov/libm-2.17.so
b7734000-b7735000 r--p 00040000 09:03 16394296   /lib/i386-linux-gnu/i686/cmov/libm-2.17.so
b7735000-b7736000 rw-p 00041000 09:03 16394296   /lib/i386-linux-gnu/i686/cmov/libm-2.17.so
b7736000-b7812000 r-xp 00000000 09:03 16679929   /usr/lib/i386-linux-gnu/libstdc++.so.6.0.18
b7812000-b7813000 ---p 000dc000 09:03 16679929   /usr/lib/i386-linux-gnu/libstdc++.so.6.0.18
b7813000-b7817000 r--p 000dc000 09:03 16679929   /usr/lib/i386-linux-gnu/libstdc++.so.6.0.18
b7817000-b7818000 rw-p 000e0000 09:03 16679929   /usr/lib/i386-linux-gnu/libstdc++.so.6.0.18
b7818000-b781f000 rw-p 00000000 00:00 0 
b7821000-b7825000 rw-p 00000000 00:00 0 
b7825000-b7826000 r-xp 00000000 00:00 0          [vdso]
b7826000-b7845000 r-xp 00000000 09:03 16394256   /lib/i386-linux-gnu/ld-2.17.so
b7845000-b7846000 r--p 0001f000 09:03 16394256   /lib/i386-linux-gnu/ld-2.17.so
b7846000-b7847000 rw-p 00020000 09:03 16394256   /lib/i386-linux-gnu/ld-2.17.so
bf7ea000-bf80b000 rw-p 00000000 00:00 0          [stack]