fork(1) download
  1. #include <iostream>
  2. #include <memory>
  3.  
  4.  
  5. using namespace std;
  6.  
  7. struct A {
  8. int r = 1;
  9. };
  10.  
  11. struct B {
  12. void foo( A&& a )
  13. {
  14. j = &a;
  15. cout << j->r;
  16. }
  17.  
  18. const A& begin() const
  19. {
  20. return *j;
  21. }
  22.  
  23. A* j;
  24. };
  25.  
  26.  
  27.  
  28. int main() {
  29.  
  30. A a;
  31.  
  32. B b;
  33.  
  34. b.foo( std::move( a ) );
  35.  
  36. delete &b.begin();
  37.  
  38. cout << b.begin().r;
  39.  
  40. // cout << a->r;
  41.  
  42. return 0;
  43. }
Runtime error #stdin #stdout #stderr 0s 3476KB
stdin
Standard input is empty
stdout
1
stderr
*** Error in `./prog': munmap_chunk(): invalid pointer: 0xbfdfdb2c ***
======= Backtrace: =========
/lib/i386-linux-gnu/i686/cmov/libc.so.6(+0x75e72)[0xb7652e72]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(+0x76525)[0xb7653525]
/usr/lib/i386-linux-gnu/libstdc++.so.6(_ZdlPv+0x1f)[0xb783582f]
./prog[0x8048541]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(__libc_start_main+0xf5)[0xb75f68f5]
./prog[0x80485b1]
======= Memory map: ========
08048000-08049000 r-xp 00000000 09:03 16255889   /home/xgILHn/prog
08049000-0804a000 rw-p 00000000 09:03 16255889   /home/xgILHn/prog
087b9000-087da000 rw-p 00000000 00:00 0          [heap]
b75db000-b75dd000 rw-p 00000000 00:00 0 
b75dd000-b7786000 r-xp 00000000 09:03 16394299   /lib/i386-linux-gnu/i686/cmov/libc-2.17.so
b7786000-b7787000 ---p 001a9000 09:03 16394299   /lib/i386-linux-gnu/i686/cmov/libc-2.17.so
b7787000-b7789000 r--p 001a9000 09:03 16394299   /lib/i386-linux-gnu/i686/cmov/libc-2.17.so
b7789000-b778a000 rw-p 001ab000 09:03 16394299   /lib/i386-linux-gnu/i686/cmov/libc-2.17.so
b778a000-b778d000 rw-p 00000000 00:00 0 
b778d000-b77a8000 r-xp 00000000 09:03 16394343   /lib/i386-linux-gnu/libgcc_s.so.1
b77a8000-b77a9000 rw-p 0001a000 09:03 16394343   /lib/i386-linux-gnu/libgcc_s.so.1
b77a9000-b77aa000 rw-p 00000000 00:00 0 
b77aa000-b77eb000 r-xp 00000000 09:03 16394296   /lib/i386-linux-gnu/i686/cmov/libm-2.17.so
b77eb000-b77ec000 r--p 00040000 09:03 16394296   /lib/i386-linux-gnu/i686/cmov/libm-2.17.so
b77ec000-b77ed000 rw-p 00041000 09:03 16394296   /lib/i386-linux-gnu/i686/cmov/libm-2.17.so
b77ed000-b78c9000 r-xp 00000000 09:03 16679929   /usr/lib/i386-linux-gnu/libstdc++.so.6.0.18
b78c9000-b78ca000 ---p 000dc000 09:03 16679929   /usr/lib/i386-linux-gnu/libstdc++.so.6.0.18
b78ca000-b78ce000 r--p 000dc000 09:03 16679929   /usr/lib/i386-linux-gnu/libstdc++.so.6.0.18
b78ce000-b78cf000 rw-p 000e0000 09:03 16679929   /usr/lib/i386-linux-gnu/libstdc++.so.6.0.18
b78cf000-b78d6000 rw-p 00000000 00:00 0 
b78d8000-b78dc000 rw-p 00000000 00:00 0 
b78dc000-b78dd000 r-xp 00000000 00:00 0          [vdso]
b78dd000-b78fc000 r-xp 00000000 09:03 16394256   /lib/i386-linux-gnu/ld-2.17.so
b78fc000-b78fd000 r--p 0001f000 09:03 16394256   /lib/i386-linux-gnu/ld-2.17.so
b78fd000-b78fe000 rw-p 00020000 09:03 16394256   /lib/i386-linux-gnu/ld-2.17.so
bfddd000-bfdfe000 rw-p 00000000 00:00 0          [stack]