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

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

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

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

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

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

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

相关推荐
左手の明天9 小时前
SLIP 协议封装与解析详解:原理、C 代码与实战案例
linux·c语言·开发语言·c++
꯭自꯭闭꯭9 小时前
达梦SQL优化相关
linux·运维·数据库·sql
一条破秋裤10 小时前
Linux 共享内存通信:POSIX 共享内存与 mmap
linux·运维·服务器
小灰灰搞电子11 小时前
C语言 <ctype.h> 头文件详解
c语言·ctype.h
阿钱真强道11 小时前
17 嵌入式操作系统 | uloop 事件循环:TCP 客户端
c语言·tcp/ip·tcp·事件循环·uloop
谷哥的小弟11 小时前
CentOS Stream浴火重生
linux·运维·centos
程序员-Benothing12 小时前
Shell输入输出详解:read、echo、printf、颜色输出
linux·运维·服务器
FPGA小徐13 小时前
从 NEMU 到 AbstractMachine:程序、运行时环境与 AM 完全解析
linux·运维·服务器
会员果汁13 小时前
函数调用和变长参数
c语言
qetfw14 小时前
Debian Chrony 时间同步、RAID5 与 LUKS 磁盘加密配置
linux·debian