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

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

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

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

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

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

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

相关推荐
lhbweilai7 分钟前
分析FreeRTOS内核对象API的源码实现(八)
c语言·开发语言·stm32·单片机
晚风吹北巷34 分钟前
Linux复习篇(自用)
linux·运维·服务器·1024程序员节
艾络迅Acceleronix1 小时前
环境监测终端:STM32+EG800Z AT+ 艾络迅平台实战|多传感器采集联动全流程
c语言·stm32·单片机·嵌入式硬件·物联网·1024程序员节
Zwawa1 小时前
一只按键不只“按下”:短按、长按和连按如何共存
c语言·单片机·嵌入式
by209991 小时前
Linux 压缩传输、进程查看与权限管理
linux·经验分享·1024程序员节
无足鸟ICT2 小时前
【RHCA+】reboot命令(重启)
linux·运维·服务器·1024程序员节
DYWorker0013 小时前
第1课:基于正点原子RK3568开发板读懂Linux内核
linux·运维·网络
Android系统攻城狮3 小时前
Linux FFmpeg深度解析之avformat_open_input调用流程与实战(一)
linux·运维·ffmpeg·车载音视频·ffmpeg音视频·音视频进阶手册
吹什么轩3 小时前
linux系统复习:Ext 文件系统(一个文件在磁盘上到底长什么样)
linux·运维·服务器
wyhwust4 小时前
程序设计基础--C语言输入输出单元测试
c语言·开发语言