#include <iostream> #include <cstring> using namespace std; class MyLittleStringBox { private: int size; char *stringBox; public: MyLittleStringBox(unsigned int size) { stringBox=new char[size]; this->size=size; } ~MyLittleStringBox() { if(stringBox!=NULL) delete[] stringBox; } char *getString() { return stringBox; } int getSize() { return size; } void setString(char const *lilString, int size) { if(size<=this->size) { memset(stringBox, 0, this->size); strncpy(stringBox, lilString, size); } return; } }; void printMyLittleString(MyLittleStringBox adorableString) { int i; char *cuteString=adorableString.getString(); for(i=0;i<adorableString.getSize();i++) cout<<cuteString[i]; cout<<endl; } int main() { MyLittleStringBox box(5); box.setString("abcd", 4); printMyLittleString(box); return 0; }
Standard input is empty
abcd
*** 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]