在使用JSON过程中遇到的一个空间释放问题

在对完成的模块进行空间访问检查中发现了这个问题,这刚开始接触JSON的使用,也不知道他的内部实现,因此该问题找了好久,终于发现是每个节点创建都会自动开辟空间,因此造成空间未成功释放的错误。

JSON未成功替换节点空间释放问题

cJSON_ReplaceItemInObject(ties,"time", CJSON_CreateString(curtime));

在上述节点替换函数中,若ties节点内没有time节点,则会替换失败,新创建的CJSON_CreateString(curtime)节点不会加入到大节点上,因此递归释放根节点时,新创建的该节点不会被释放。

因此未成功挂载到根上的节点需要单独释放空间。

大家在项目中一定要养成空间随开随关的习惯啊

相关推荐
2401_868534784 小时前
分析RTOS与Linux有什么区别
linux·运维·服务器
玛丽莲茼蒿5 小时前
Linux/Unix学习笔记(四)—— 进程管理
linux·学习·unix
Peace5 小时前
【Nginx】
linux·运维·nginx
网络与设备以及操作系统学习使用者6 小时前
Linux与Windows核心差异深度解析
linux·运维·网络·windows·学习
筠筠喵呜喵6 小时前
Linux CPU性能优化:D状态和Z状态排查与处理
linux·服务器·性能优化
ZC跨境爬虫7 小时前
模块化烹饪小程序开发日记 Day7:(菜谱详情接口开发与JSON数据读取全流程)
前端·javascript·css·ui·微信小程序·json
冉卓电子8 小时前
MPC5604B/C eMIOS 高级定时器全解
c语言
张小姐的猫8 小时前
【Linux】多线程 —— 线程同步 | 生产者消费者模型 | POSIX 信号量
linux·运维·服务器
社交怪人10 小时前
【三角形面积】信息学奥赛一本通C语言解法(题号2073)
c语言
社交怪人10 小时前
【球体体积】信息学奥赛一本通C语言解法(题号1030)
c语言·开发语言