glibc detected corrupted double-linked list: 0xb78381d8 *
======= Backtrace: =========
/usr/lib/libc.so.6[0xb7781d3b]
/usr/lib/libc.so.6[0xb7781e77]
/usr/lib/libc.so.6[0xb7782d50]
/usr/lib/libc.so.6(malloc+0x71)[0xb7783f2c]
后面的call stack是自己程序的函数调用
可能原因:
重复释放
int* a = new int(10);
delete a;
delete a; // <---- 这个
释放未初始化的指针
int* a;
delete a; // <---- 这个
内存越界踩踏
char s[10];
int* a = new int(10);
sprintf(s, "1234567890");
delete a; // a 被前面的给覆盖了