[問題] pointer的double free

看板C_and_CPP作者 (NI)時間15年前 (2009/07/14 10:27), 編輯推噓1(103)
留言4則, 3人參與, 最新討論串1/2 (看更多)
int main() { int* x=new int; *x =10; delete[] x; delete[] x; } 我寫個程式長這樣 不過也沒有發生什麼不幸的事情 我們常看到的double free 不是就是這種情形嗎? 還是說 是free第一次之後有用其他的pointer 所以那一塊的heap memory就被其他pointer使用 結果在之後又free第二次了 所以就free到不該free的地方這樣嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.251.212

07/14 11:04, , 1F
怎麼會沒事, 我一執行就 core dumped ... XD
07/14 11:04, 1F

07/14 11:19, , 2F
我的的怎麼沒有事情@@好奇怪
07/14 11:19, 2F

07/15 00:34, , 3F
如果沒有事情,可以試著將執行檔compile成release的版本
07/15 00:34, 3F

07/15 00:34, , 4F
然後多執行幾次,或許會看到錯誤產生...
07/15 00:34, 4F
文章代碼(AID): #1AM-qigD (C_and_CPP)
文章代碼(AID): #1AM-qigD (C_and_CPP)