cJson内存泄漏 free不掉

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);这样生成的字符串就没有了空格回车啥的了,很紧凑

 

 

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值