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

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

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

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

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

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

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

相关推荐
GeW9 小时前
RHCE快速拿证全攻略:考点拆解+实验强化+时间规划,一次通关
linux
Logic1019 小时前
C语言/数据结构数组题解:数字列表加一(Plus One)——进位处理与数组扩展
c语言·数据结构·模拟·数组·时间复杂度·算法题·进位
Escalating_xu10 小时前
【C语言常见概念】从第一行代码到字符串结束标志:一次打通编译、main、ASCII、转义字符与注释
c语言·c++
Navigator_Z10 小时前
LeetCode //C - 1250. Check If It Is a Good Array
c语言·算法·leetcode
码农小韩10 小时前
Linux应用开发(八)——TCP/IP网络编程基础
linux·嵌入式软件开发·linux操作系统·嵌入式操作系统·linux网络编程·linux应用
迷途之人不知返10 小时前
【进程】-5-进程优先级
linux
fengyehongWorld11 小时前
Linux squid搭建基础代理服务器
linux·运维·服务器
木白CPP11 小时前
Linux DMA驱动详解(二)-----DMA的使用者
java·linux·运维
赵民勇11 小时前
systemd-socket-activate命令详解
linux·运维
SuperByteMaster11 小时前
freertos 任务创建方式
c语言