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

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

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

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

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

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

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

相关推荐
FlightYe10 分钟前
linux系统编程(八):阻塞与非阻塞IO对比
android·linux·运维·服务器·github·vim
雾时之林1 小时前
Linux---计算机网络常见面试题
linux·运维·计算机网络
10mAh2 小时前
【Linux】error while loading shared libraries 怎么解决?——ldd、RPATH 与动态链接排错
java·linux·前端
小当家.1052 小时前
LLM结构化输出与流式响应:从JSON修复到SSE全链路
llm·json
MC皮蛋侠客2 小时前
TDengine C++ 系列(5):C/C++ 连接器——连接管理与查询 API
c语言·c++·tdengine
楷哥爱开发2 小时前
如何在 Windows、macOS 和 Linux 上安装 scikit-learn (sklearn)
linux·windows·macos
十年磨一剑~2 小时前
CAAM不落盘存储密钥方式处理
linux·ubuntu
zhangrelay2 小时前
ROS 2 Lyrical 第2章 ROS 2系统架构与核心概念
linux·笔记·学习·ubuntu·ros2
天空'之城2 小时前
C 语言工业级通用组件手写 27:配置参数管理组件
c语言·eeprom·参数管理·工业级组件·掉电存储
橘色的喵2 小时前
EventPool 32-bit 带标签 CAS 池:RT-Thread 单核 + Linux 双平台无锁
linux·运维·服务器