cjson内存泄漏问题注意事项

(1)使用root = cJSON_Parse(text);

//将字符串转成json格式,函数中申请了一块内存给root 所以在最后要释放root

cJSON_Delete(root ); //释放cJSON_Parse()分配出来的内存空间

(2)使用out = cJSON_Print(root);(含有cJSON_PrintUnformatted函数)

//函数将json数据转成字符串,这个函数内申请了一段内存给out,所以使用完out后也要释放

由于out不是json指针的数据格式,使用cJSON_free(out);释放即可

(3)使用cJSON new_json_str = cJSON_Create*(str);

//将一个字符串转成一个json对象,函数里面也涉及了内存分配,用完以后也要释放cJSON_Delete(new_json_str );

若cJSON new_json = cJSON_Create*(str)创建后,通过cJSON_AddItemToObject( json, "test", new_json );(或者cJSON_AddItemToArray),加入到数组或者object中,不需要单独释放new_json ,删除json时被添加的item(此处为申请的new_json)同时也会被删除。

注意:cJSON_Delete( ) ,cJSON_free ( ) 要区分使用,json格式的使用cJSON_Delete ,指针格式使用cJSON_free,对应关系如下:

申请内存: cJSON_Parse cJSON_Create cJSON_Print
释放内存: cJSON_Delete cJSON_Delete cJSON_free
Referenced from:cjson内存泄漏问题注意事项-CSDN博客

相关推荐
来者皆善1 天前
ZYNQ linux上使用 USB CDC ACM
linux·运维·服务器
缓慢更新1 天前
企业档案管理系统迁移实录:从文件服务器到智能检索引擎
运维·服务器
Dawn-bit1 天前
Linux磁盘分区与Swap和磁盘故障查询
linux·运维·服务器·网络·云计算
赵庆明老师1 天前
Vben精讲:21-详解web-antd:tsconfig.json
前端·json·vim
梦想三三1 天前
LangChain Output Parser 实战:从字符串到结构化数据的完整指南
android·服务器·langchain·github·uv
netho01 天前
影刀rpa证书题库使用教学
运维·服务器·rpa
无足鸟ICT1 天前
【RHCA+】$[]
linux·运维·服务器
运维技术小记1 天前
国产化环境配置 VNC 远程桌面:麒麟 V10 实战
linux·运维·服务器
爱码少年1 天前
一条Shell命令实现文件目录服务器间快速转移
服务器·shell
laboratory agent开发1 天前
智能体多工具串联执行中途失败,部分写入的数据如何回滚
运维·服务器·数据库