2010-07-31 71 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指針。

如果你想得到任何有用的幫助,你應該發佈產生這個問題的代碼。

相關問題