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

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

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

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

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

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

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

相关推荐
An_s43 分钟前
机器学习python之识别图中物品信息
java·linux·开发语言
2501_914245931 小时前
C语言与硬件交互:从GPIO到中断的嵌入式编程实践
c语言·单片机·交互
Championship.23.241 小时前
Linux 3.0 LVDS驱动开发详解
linux·运维·驱动开发·lvds
炸膛坦客2 小时前
单片机/C/C++八股:(二十四)编译文件( .bin 和 .hex ,包括 .elf 和 .axf )
c语言·c++·单片机
风向决定发型丶2 小时前
Shell中的特殊变量
linux·运维·bash
mounter6253 小时前
走向长时运行:引入协程(Coroutines),打破 BPF 程序的“一堂到底”限制
linux·ebpf·kernel
六点_dn3 小时前
Linux学习笔记-shell运算符
linux·笔记·学习
hehelm4 小时前
IO 多路复用 — Reactor
linux·服务器·网络·数据库·c++
浅止菌4 小时前
嵌入式项目Makefile越写越乱?一张万能模板+5个技巧,告别重复劳动
linux
简单电磁炮5 小时前
硬件基础4
c语言