我收到運行時錯誤被釋放的指針未被分配 - 如何調試?
malloc: *** error for object 0x10070c5c0: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
以下堆棧跟蹤:
這告訴我,不順心的事在析構函數~Clustering
和~NodeMap
(第一個是空的第二個調用delete[]
),但不是「正在釋放的指針」所在的位置。我怎樣才能找到這個?
另外,在哪裏是malloc_error_break
?
在valgrind或任何此類內存泄漏/損壞檢測工具下運行它。 –
閱讀「[三條法則](http://stackoverflow.com/questions/4172722/what-is-the-rule-of-ree)」。 –
「*這告訴我在析構函數'〜Clustering'和'〜NodeMap'(它們是空的存根)*」中出錯了。我不認爲他們都是空的。我很確定'〜NodeMap()'調用'delete []'。 –