2010-07-31 70 views
2

当我在Linux我得到以下编译(C++程序)错误请帮我glibc的检测*** ./a.out:免费():无效的指针:

 
glibc detected *** ./a.out: free(): invalid pointer:0x0804878d *** 
======= Backtrace: ========= 
/lib/libc.so.6[0xbd5f18] 
/lib/libc.so.6(__libc_free+0x79)[0xbd941d] 
/usr/lib/libstdc++.so.6(_ZdlPv+0x21)[0x3233fe1] 
./a.out(__gxx_personality_v0+0x100)[0x8048514] 
./a.out(__gxx_personality_v0+0x176)[0x804858a] 
/lib/libc.so.6(__libc_start_main+0xdc)[0xb877e4] 
./a.out(__gxx_personality_v0+0x5d)[0x8048471] 
======= Memory map: ======== 
00b55000-00b6e000 r-xp 00000000 fd:00 6687029 /lib/ld-2.4.so 
00b6e000-00b6f000 r-xp 00018000 fd:00 6687029 /lib/ld-2.4.so 
00b6f000-00b70000 rwxp 00019000 fd:00 6687029 /lib/ld-2.4.so 
00b72000-00c9e000 r-xp 00000000 fd:00 6687030 /lib/libc-2.4.so 
00c9e000-00ca1000 r-xp 0012b000 fd:00 6687030 /lib/libc-2.4.so 
00ca1000-00ca2000 rwxp 0012e000 fd:00 6687030 /lib/li 
+0

是不是你免费的指针()ing已经free()'d? – Calvin1602 2010-07-31 06:56:03

+0

你可以释放无效指针,如果你想获得更多的信息,你将不得不提供更多的信息 – Anycorn 2010-07-31 06:56:06

+2

你做了一些糟糕的事情。也许像valgrind这样的调试工具可以帮助您获得更多细节。 – asveikau 2010-07-31 06:56:58

回答

2

glibc的检测* ./a.out:免费():无效的指针:0x0804878d *

这意味着你可能delete尚未与new创建DA指针。

如果你想得到任何有用的帮助,你应该发布产生这个问题的代码。

相关问题