→ Hazukashiine: for (exp1; exp2; exp3) { stat; }06/16 16:26
※ 編輯: xanushan (61.56.12.194), 06/16/2016 16:31:35
→ Hazukashiine: 從這段 code 看不到 double free 除非有水晶球吧?06/16 16:31
→ Hazukashiine: 還有為什麼會 free 一個不是指標型態的變數啊 QQ06/16 16:33
→ xanushan: 已更正. 打太快打錯…06/16 16:33
→ bibo9901: 因為你在write data 迴圈條件用 j, 但裡面用 k ?06/16 16:35
→ Hazukashiine: ---> float a; free(a); <---06/16 16:35
→ bibo9901: 而且你 int j 和 int k 都沒給初值喔!06/16 16:35
※ 編輯: xanushan (61.56.12.194), 06/16/2016 16:40:49
→ xanushan: 抱歉讓大家傷眼了…已更正…所以不能重複free嗎…如果會06/16 16:44
→ xanushan: 重複malloc 的話06/16 16:44
→ xanushan: 編譯有過,但跑出double free ....06/16 16:46
→ bibo9901: 你a,b,c還是沒初始化啊06/16 17:03
※ 編輯: xanushan (61.56.12.194), 06/16/2016 17:07:28
→ xanushan: sor…更正了…都給NULL…結果一樣…06/16 17:09
→ xanushan: 還是錯不在這 …因為我只有改if裡的code而己06/16 17:17
推 yvb: 為什麼 free(b); 後卻設 a=NULL; 而不是設 b=NULL; ??06/16 17:20
※ 編輯: xanushan (61.56.12.194), 06/16/2016 17:24:45
→ xanushan: 打錯…改好了…QQ 06/16 17:25
→ xanushan: 錯誤結果一樣… 06/16 17:26
→ xanushan: 剛剛發現把第二個ball[j].counter2換成其他變數 06/16 17:54
→ xanushan: 就沒有錯誤了…有大大能解答嗎…(malloc) 06/16 17:57
推 yvb: 那就是你未貼出的部分, 存取越界把heap搞壞, 所以free()報錯. 06/16 17:59
→ yvb: 比方你ball的宣告長什麼樣,或是如何取得ball的空間. 06/16 17:59
→ yvb: 以及 a b c 的存取動作. 06/16 18:04
→ yvb: 沒看到錯不代表沒錯,可能只是剛好沒動到free()時,檢查的部分. 06/16 18:09
→ phishingphi: 可以考慮用valgrind之類的tool 06/16 21:17
推 steve1012: 用tool 直接看哪裡free 06/18 05:23