当前位置: 首页 > news >正文

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

http://www.lryc.cn/news/471666.html

相关文章:

  • 雷军救WPS“三次”,WPS注入新生力量,不再“抄袭”微软
  • zookeeper全系列学习之分布式锁实现
  • 耐用的内衣洗衣机有哪些?双11好用内衣洗衣机品牌排行榜
  • 富格林:曝光可信经验击败陷阱
  • 3211、生成不含相邻零的二进制字符串-cangjie
  • 【wpf】wpf程序联合控制台测试
  • 使用 Spring Doc 为 Spring REST API 生成 OpenAPI 3.0 文档
  • ssm基于ssm框架的滁艺咖啡在线销售系统+vue
  • 微信小程序 - 动画(Animation)执行过程 / 实现过程 / 实现方式
  • 【Linux】nohup 命令
  • CSS、Less、Scss
  • [笔记] ffmpeg docker编译环境搭建
  • 基于SSM的心理咨询管理管理系统(含源码+sql+视频导入教程+文档+PPT)
  • 南开大学《2023年+2022年810自动控制原理真题》 (完整版)
  • 【算法】Kruskal最小生成树算法
  • Pocket通常指的是一种特定的凹形或凹槽
  • Cesium基础-(Entity)-(Billboard)
  • 从0到1,解读安卓ASO优化!
  • go语言中流程控制语句
  • k8s 部署 emqx
  • CSS.导入方式
  • Linux之nfs服务器和dns服务器
  • 大模型系列——AlphaZero/强化学习/MCTS
  • 原生js实现拖拽上传(拖拽时高亮上传区域)
  • python道格拉斯算法的实现
  • STM32的hal库中,后缀带ex和不带的有什么区别
  • 可观测性三大支柱
  • 【银河麒麟高级服务器操作系统·实例分享】裸金属服务器开机失败分析及处理建议
  • 模型剪枝实操
  • 网安学习路线!最详细没有之一!看了这么多分享网安学习路线的一个详细的都没有!