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

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

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

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

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

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

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

相关推荐
菜鸟江多多2 分钟前
【STM32 Rocket-Pi原理图分享】
c语言·stm32·嵌入式硬件·mcu·智能硬件·原理图
良木生香4 分钟前
【C语言进阶】文件操作的相关详解(1):
c语言·数据结构·c++
东皇太星14 分钟前
linux 内存管理详解
linux·运维·服务器
JY.yuyu19 分钟前
Linux计划任务进程
linux·运维·服务器
single-life20 分钟前
Linux 下 部署es+nebula(附带内网部署方式)
linux·运维·elasticsearch·nebula
ICT董老师27 分钟前
kubernetes中operator与helm有什么区别?部署mysql集群是选择operator部署还是helm chart部署?
linux·运维·mysql·云原生·容器·kubernetes
wjhx27 分钟前
对ubuntu22.04版本日志的处理
linux·ubuntu
你怎么知道我是队长37 分钟前
C语言---递归
c语言·开发语言
情缘晓梦.39 分钟前
Linux指令和权限
linux·运维·服务器
autho44 分钟前
conda
linux·python·conda