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

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

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

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

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

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

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

相关推荐
H.莓飛4 分钟前
【数据结构】堆
linux·数据结构·算法
Ruiery10 分钟前
Linux 6.6内核 CPU 深度解析(四):中断与 IPI — 一个 CPU 怎么“喊“另一个 CPU
linux·运维·服务器
木卫二号Coding9 小时前
推荐Linux统计文件大小并操作删除工具-ncdu
linux·运维·服务器
李永奉9 小时前
C语言-指针函数与函数指针及回调函数的使用
c语言·开发语言
杨丰玮4189 小时前
C语言基础知识(一)————各类符号的含义与输入输出库(stdio)
c语言·开发语言
zhangrelay10 小时前
机械臂末端规划智能模型的误区演示
linux·笔记·学习·ubuntu·ros2
水饺编程10 小时前
第1章,了解乌班图环境,使用浏览器和邮箱
c语言·汇编·ubuntu
Escalating_xu12 小时前
【C 语言】操作符详解(下):逗号、下标、结构体、类型转换与表达式求值
c语言
网络毒刘12 小时前
MCP 从 0 接入 Cursor:mcp.json 安装配置到最小调用与常见报错
json
Ivanqhz12 小时前
正余弦位置编码(Sinusoidal Positional Encoding)
java·linux·数据库