fork download
  1. #include <iostream>
  2. #include <cstring>
  3. using namespace std;
  4.  
  5. class MyLittleStringBox
  6. {
  7. private:
  8. int size;
  9. char *stringBox;
  10. public:
  11. MyLittleStringBox(unsigned int size)
  12. {
  13. stringBox=new char[size];
  14. this->size=size;
  15. }
  16.  
  17. ~MyLittleStringBox()
  18. {
  19. if(stringBox!=NULL) delete[] stringBox;
  20. }
  21.  
  22. char *getString()
  23. {
  24. return stringBox;
  25. }
  26.  
  27. int getSize()
  28. {
  29. return size;
  30. }
  31.  
  32. void setString(char const *lilString, int size)
  33. {
  34. if(size<=this->size)
  35. {
  36. memset(stringBox, 0, this->size);
  37. strncpy(stringBox, lilString, size);
  38. }
  39. return;
  40. }
  41. };
  42.  
  43. void printMyLittleString(MyLittleStringBox adorableString)
  44. {
  45. int i;
  46. char *cuteString=adorableString.getString();
  47. for(i=0;i<adorableString.getSize();i++)
  48. cout<<cuteString[i];
  49. cout<<endl;
  50. }
  51.  
  52. int main()
  53. {
  54. MyLittleStringBox box(5);
  55. box.setString("abcd", 4);
  56. printMyLittleString(box);
  57. return 0;
  58. }
Runtime error #stdin #stdout #stderr 0s 80768KB
stdin
Standard input is empty
stdout
abcd
stderr
*** Error in `./prog': double free or corruption (fasttop): 0x00002ad0273f4c20 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x70bcb)[0x2ad026f9ebcb]
/lib/x86_64-linux-gnu/libc.so.6(+0x76f96)[0x2ad026fa4f96]
/lib/x86_64-linux-gnu/libc.so.6(+0x7778e)[0x2ad026fa578e]
./prog(+0xaf8)[0x2ad02604baf8]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf1)[0x2ad026f4e2b1]
./prog(+0xb8a)[0x2ad02604bb8a]
======= Memory map: ========
2ad02604b000-2ad02604d000 r-xp 00000000 fe:00 1987973                    /home/is5dUs/prog
2ad02624c000-2ad02624d000 r--p 00001000 fe:00 1987973                    /home/is5dUs/prog
2ad02624d000-2ad02624e000 rw-p 00002000 fe:00 1987973                    /home/is5dUs/prog
2ad02624e000-2ad026271000 r-xp 00000000 fe:00 1971450                    /lib/x86_64-linux-gnu/ld-2.24.so
2ad026271000-2ad026275000 rw-p 00000000 00:00 0 
2ad026471000-2ad026472000 r--p 00023000 fe:00 1971450                    /lib/x86_64-linux-gnu/ld-2.24.so
2ad026472000-2ad026473000 rw-p 00024000 fe:00 1971450                    /lib/x86_64-linux-gnu/ld-2.24.so
2ad026473000-2ad026474000 rw-p 00000000 00:00 0 
2ad026474000-2ad0265e6000 r-xp 00000000 fe:00 1973518                    /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22
2ad0265e6000-2ad0267e6000 ---p 00172000 fe:00 1973518                    /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22
2ad0267e6000-2ad0267f0000 r--p 00172000 fe:00 1973518                    /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22
2ad0267f0000-2ad0267f2000 rw-p 0017c000 fe:00 1973518                    /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22
2ad0267f2000-2ad0267f6000 rw-p 00000000 00:00 0 
2ad0267f6000-2ad0268f9000 r-xp 00000000 fe:00 1971479                    /lib/x86_64-linux-gnu/libm-2.24.so
2ad0268f9000-2ad026af8000 ---p 00103000 fe:00 1971479                    /lib/x86_64-linux-gnu/libm-2.24.so
2ad026af8000-2ad026af9000 r--p 00102000 fe:00 1971479                    /lib/x86_64-linux-gnu/libm-2.24.so
2ad026af9000-2ad026afa000 rw-p 00103000 fe:00 1971479                    /lib/x86_64-linux-gnu/libm-2.24.so
2ad026afa000-2ad026b10000 r-xp 00000000 fe:00 1971417                    /lib/x86_64-linux-gnu/libgcc_s.so.1
2ad026b10000-2ad026d0f000 ---p 00016000 fe:00 1971417                    /lib/x86_64-linux-gnu/libgcc_s.so.1
2ad026d0f000-2ad026d10000 r--p 00015000 fe:00 1971417                    /lib/x86_64-linux-gnu/libgcc_s.so.1
2ad026d10000-2ad026d11000 rw-p 00016000 fe:00 1971417                    /lib/x86_64-linux-gnu/libgcc_s.so.1
2ad026d11000-2ad026d29000 r-xp 00000000 fe:00 1971436                    /lib/x86_64-linux-gnu/libpthread-2.24.so
2ad026d29000-2ad026f28000 ---p 00018000 fe:00 1971436                    /lib/x86_64-linux-gnu/libpthread-2.24.so
2ad026f28000-2ad026f29000 r--p 00017000 fe:00 1971436                    /lib/x86_64-linux-gnu/libpthread-2.24.so
2ad026f29000-2ad026f2a000 rw-p 00018000 fe:00 1971436                    /lib/x86_64-linux-gnu/libpthread-2.24.so
2ad026f2a000-2ad026f2e000 rw-p 00000000 00:00 0 
2ad026f2e000-2ad0270c3000 r-xp 00000000 fe:00 1971573                    /lib/x86_64-linux-gnu/libc-2.24.so
2ad0270c3000-2ad0272c2000 ---p 00195000 fe:00 1971573                    /lib/x86_64-linux-gnu/libc-2.24.so
2ad0272c2000-2ad0272c6000 r--p 00194000 fe:00 1971573                    /lib/x86_64-linux-gnu/libc-2.24.so
2ad0272c6000-2ad0272c8000 rw-p 00198000 fe:00 1971573                    /lib/x86_64-linux-gnu/libc-2.24.so
2ad0272c8000-2ad0272d1000 rw-p 00000000 00:00 0 
2ad0273e3000-2ad027415000 rw-p 00000000 00:00 0                          [heap]
2ad028000000-2ad028021000 rw-p 00000000 00:00 0 
2ad028021000-2ad02c000000 ---p 00000000 00:00 0 
7fffd9d8c000-7fffd9dad000 rw-p 00000000 00:00 0                          [stack]
7fffd9dff000-7fffd9e00000 r-xp 00000000 00:00 0                          [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]