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

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

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

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

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

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

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

相关推荐
AIgorithmGEEK2 分钟前
Linux 进程控制完全指南:fork、wait、exec 三部曲
linux·运维·多进程·进程创建·进程等待·进程终止·exec家族
2301_777998346 分钟前
网络基础(一):协议与网络传输基本流程
linux·网络
小张同学a.21 分钟前
zabbix企业级监控平台4——分布式监控与grafana数据可视化
linux·运维·数据库·分布式·信息可视化·zabbix·grafana
Darkwanderor25 分钟前
线程概念和Linux线程
linux·c语言·c++
clear sky .32 分钟前
[freertos源码阅读]task.c任务篇
c语言·开发语言
酷可达拉斯1 小时前
自动化运维-从零开始编写ansible剧本(二)
linux·运维·服务器·centos·自动化
Darkwanderor1 小时前
Linux线程控制
linux·c语言·c++
Brilliantwxx1 小时前
【Linux】 开发|Git 版本控制与 gdb/cgdb 调试
linux·笔记·git
allforgood2 小时前
管理 SELinux 安全性
linux·运维·网络
Darkwanderor2 小时前
多线程的互斥问题和互斥锁解决互斥问题
linux·c语言·c++