cJson記憶體洩漏 free不掉

2021-10-10 10:05:56 字數 909 閱讀 4692

1.問題描述:使用cjson,直接賦值貼上官網的歷程,發現free(out);根本釋放不掉記憶體。當然也有可能我看的這個官網是假的。

問題復現

發現root_json ,data_json 和 out都沒有被釋放,然後我就新增root_json ,data_json的釋放函式。

結果如下圖,結果分析:root_json 和 data_json被成功釋放了,但是out還是沒有被釋放

2.問題解決:cjson_createobject建立的指標,需要使用cjson_delete刪除,cjson_print賦值的指標需要free釋放。

3.其他使用記錄

生成的資料使用時,轉換成字串,如果使用char *out = cjson_print(root_json);的話,列印出out的時候會出現很多空格回車類似的,都會占用很大的空間。

我們可以使用char *out = cjson_printunformatted(root_json);這樣生成的字串就沒有了空格回車啥的了,很緊湊

cjson記憶體洩漏問題注意事項

1.申請了記憶體沒有釋放 造成記憶體申請失敗,下面記錄下使用的注意問題 1 使用root cjson parse text 將字串轉成json格式,函式中申請了一塊記憶體給root 所以在最後要釋放root cjson delete root 釋放cjson parse 分配出來的記憶體空間 2 使...

free 顯示記憶體

free命令可以顯示當前系統未使用的和已使用的記憶體數目,還可以顯示被核心使用的記憶體緩衝區。free 選項 b 以byte為單位顯示記憶體使用情況 k 以kb為單位顯示記憶體使用情況 m 以mb為單位顯示記憶體使用情況 o 不顯示緩衝區調節列 s 間隔秒數 持續觀察記憶體使用狀況 t 顯示記憶體總...

記憶體洩漏和記憶體溢位 記憶體洩漏和記憶體溢位

記憶體洩漏 是指申請的記憶體空間使用完畢之後未 一次記憶體洩露危害可以忽略,但若一直洩漏,無論有多少記憶體,遲早都會被占用光,最終導致程式crash。因此,開發中我們要盡量避免記憶體洩漏的出現 記憶體溢位 是指程式在申請記憶體時,沒有足夠的記憶體空間供其使用。通俗理解就是記憶體不夠用了,通常在執行大...