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

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

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

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

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

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

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

相关推荐
天南散修2 小时前
MT7916驱动中802.11转换为802.3
linux·网络·驱动开发·wifi·802.11
石一峰6992 小时前
C 语言函数设计模式实战经验
c语言·开发语言·设计模式
CriticalThinking3 小时前
在xshell中使用ssh隧道访问远程服务
linux·网络·ssh
爱装代码的小瓶子3 小时前
安工大题目分类(含解析和翻译)
linux·网络·c
坚果派·白晓明3 小时前
鸿蒙 PC 应用集成 libhv 鸿蒙化三方库 —— AtomCode + Skills 驱动的高效集成实践
c语言·c++·ai编程·harmonyos·atomcode
aaaameliaaa3 小时前
C语言随机数函数使用全解析
c语言·笔记
是个西兰花4 小时前
linux:命名管道与共享内存
linux·运维·服务器·网络·c++
Snasph4 小时前
Linux 日志流水线深度解析:syslog() → journald → rsyslog → /var/log/syslog
linux·syslog·rsyslog
凡人叶枫4 小时前
Effective C++ 条款08:别让异常逃离析构函数
java·linux·数据库·c++·嵌入式开发
新时代牛马4 小时前
内核调试方法
linux·学习