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博客

相关推荐
复园电子3 分钟前
电子签章系统选型方法论:SaaS、私有部署、API接口版怎么选
服务器·网络·lims系统
发发就是发4 分钟前
触摸屏驱动调试手记:从I2C鬼点到坐标漂移的实战录
linux·服务器·驱动开发·单片机·嵌入式硬件
Jacob程序员8 分钟前
Linux 下启动达梦数据库 Manager 图形化客户端
linux·运维·服务器
IMPYLH10 分钟前
Linux 的 pwd 命令
linux·运维·服务器·bash
SPC的存折15 分钟前
在Alpine 搭建 WordPress
linux·运维·服务器·数据库·php
倔强的小石头_17 分钟前
在外需要访问公司内网文件服务器?Serv-U + 内网穿透 把 SFTP 端口穿透到公网
运维·服务器
凤年徐23 分钟前
Linux 权限完全指南
linux·运维·服务器
重生的黑客24 分钟前
Linux 开发工具(终篇):GDB 调试进阶与系统编程入门
linux·运维·服务器
Lentou31 分钟前
上线部署之查看系统详细信息(麒麟高级服务器操作系统 V10)
运维·服务器
桌面运维家32 分钟前
vDisk IDV云桌面机房部署方案服务器安装教程
运维·服务器