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

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

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

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

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

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

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

相关推荐
liang899919 分钟前
Anconda常用命令
linux·人工智能·conda
无足鸟ICT25 分钟前
【RHCA+】管道符
linux·运维·服务器
老约家的可汗29 分钟前
Linux的库制作和原理
linux·运维·服务器
捷瑞电子工坊1 小时前
C语言联合体(Union)——让同一块内存“变脸”
c语言·union·联合体·内存共享
非鱼䲆鱻䲜2 小时前
CCS 20.5.0的printf重定向串口怎么实现?
linux·单片机·电赛·ccs
左手厨刀右手茼蒿2 小时前
PCIe设备驱动开发:从枚举到DMA传输的完整链路
linux·嵌入式·系统内核
济6172 小时前
I.MX6U Linux 驱动开发篇---零基础必看!中断实验(按键中断 + 定时器消抖 + 设备树配置实战教程)--- Ubuntu20.04
linux·驱动开发·嵌入式·嵌入式linux驱动开发
seven_stars_2 小时前
CVE-2018-19518PHP漏洞
linux·浏览器·kali
浅止菌2 小时前
嵌入式设备ping不通?tcpdump 5分钟找到凶手,比加printf快10倍
linux
Amonter2 小时前
TB-RK3399Pro移植ubuntu 26.04及烧录
linux·ubuntu·rockchip·rk3399pro