fork(5) download
  1. #include <iostream>
  2. #include <memory>
  3. class Foo {
  4. public:
  5. void bar(){
  6. std::cout<<"Hello from Foo::bar \n";
  7. }
  8. } ;
  9.  
  10. int main(){
  11. Foo foo;
  12. Foo* foo_ptr=&foo;
  13. std::shared_ptr<Foo> foo_sptr(&foo);
  14. void (Foo::*bar_ptr)()=&Foo::bar;
  15. (foo.*bar_ptr)();
  16. (foo_ptr->*bar_ptr)();
  17. (foo_sptr.get()->*bar_ptr)();
  18. }
Runtime error #stdin #stdout #stderr 0s 3432KB
stdin
Standard input is empty
stdout
Hello from Foo::bar 
Hello from Foo::bar 
Hello from Foo::bar 
stderr
*** Error in `./prog': free(): invalid pointer: 0xbffe760f ***
======= Backtrace: =========
/lib/i386-linux-gnu/i686/cmov/libc.so.6(+0x75e72)[0xb7571e72]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(+0x76bb0)[0xb7572bb0]
/usr/lib/i386-linux-gnu/libstdc++.so.6(_ZdlPv+0x1f)[0xb775482f]
./prog[0x8048ad8]
./prog[0x8048854]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(__libc_start_main+0xf5)[0xb75158f5]
./prog[0x80488f1]
======= Memory map: ========
08048000-08049000 r-xp 00000000 08:03 1295705    /home/0G9tsK/prog
08049000-0804a000 rw-p 00001000 08:03 1295705    /home/0G9tsK/prog
08b20000-08b41000 rw-p 00000000 00:00 0          [heap]
b74fa000-b74fc000 rw-p 00000000 00:00 0 
b74fc000-b76a5000 r-xp 00000000 08:03 1303839    /lib/i386-linux-gnu/i686/cmov/libc-2.17.so
b76a5000-b76a6000 ---p 001a9000 08:03 1303839    /lib/i386-linux-gnu/i686/cmov/libc-2.17.so
b76a6000-b76a8000 r--p 001a9000 08:03 1303839    /lib/i386-linux-gnu/i686/cmov/libc-2.17.so
b76a8000-b76a9000 rw-p 001ab000 08:03 1303839    /lib/i386-linux-gnu/i686/cmov/libc-2.17.so
b76a9000-b76ac000 rw-p 00000000 00:00 0 
b76ac000-b76c7000 r-xp 00000000 08:03 1303883    /lib/i386-linux-gnu/libgcc_s.so.1
b76c7000-b76c8000 rw-p 0001a000 08:03 1303883    /lib/i386-linux-gnu/libgcc_s.so.1
b76c8000-b76c9000 rw-p 00000000 00:00 0 
b76c9000-b770a000 r-xp 00000000 08:03 1303836    /lib/i386-linux-gnu/i686/cmov/libm-2.17.so
b770a000-b770b000 r--p 00040000 08:03 1303836    /lib/i386-linux-gnu/i686/cmov/libm-2.17.so
b770b000-b770c000 rw-p 00041000 08:03 1303836    /lib/i386-linux-gnu/i686/cmov/libm-2.17.so
b770c000-b77e8000 r-xp 00000000 08:03 1345926    /usr/lib/i386-linux-gnu/libstdc++.so.6.0.18
b77e8000-b77e9000 ---p 000dc000 08:03 1345926    /usr/lib/i386-linux-gnu/libstdc++.so.6.0.18
b77e9000-b77ed000 r--p 000dc000 08:03 1345926    /usr/lib/i386-linux-gnu/libstdc++.so.6.0.18
b77ed000-b77ee000 rw-p 000e0000 08:03 1345926    /usr/lib/i386-linux-gnu/libstdc++.so.6.0.18
b77ee000-b77f5000 rw-p 00000000 00:00 0 
b77f7000-b77fb000 rw-p 00000000 00:00 0 
b77fb000-b77fc000 r-xp 00000000 00:00 0          [vdso]
b77fc000-b781b000 r-xp 00000000 08:03 1303796    /lib/i386-linux-gnu/ld-2.17.so
b781b000-b781c000 r--p 0001f000 08:03 1303796    /lib/i386-linux-gnu/ld-2.17.so
b781c000-b781d000 rw-p 00020000 08:03 1303796    /lib/i386-linux-gnu/ld-2.17.so
bffd4000-bffe9000 rw-p 00000000 00:00 0          [stack]