開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
XCode
問題(Question):
我正在練習寫動態記憶體配置
輸入的測資量若是超過現有的空間
就重新索取記憶體(第100行)
但是索取後正常來說應該要把舊資料free掉(107行)
不知為何free時出現錯誤
我嘗試過如果是在realloc前free資料的話是可以成功free的
可以請問各位前輩們這是什麼原因呢?
還是說free函數使用上有什麼使用限制嗎?
看了置頂13誡第六條我似乎也沒有違反,所以真的不知哪裡出問題了
「 但若不是用 malloc() 所得到的記憶體,則不可以 free()。已經 free()了
所指記憶體的指標,在它指向另一塊有效的動態分配得來的空間之前,不可
以再被 free(),也不可以提取(dereference)這個指標。
」
麻煩大家了,謝謝
錯誤結果(Wrong Output):
在第107行要free資料時,出現了錯誤,在XCode上提示為Thread 1:signal SIGABRT
程式碼(Code):(請善用置底文網頁, 記得排版)
https://ideone.com/VNDh2U