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

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

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

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

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

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

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

相关推荐
brucelee18611 分钟前
Claude Code 安装教程(Windows / Linux / macOS)
linux·windows·macos
jsons138 分钟前
给每台虚拟机设置独立控制台密码
linux·运维·服务器
代码AI弗森43 分钟前
配置文件战争:TOML/YAML/JSON 为何成为不同框架的“专属标配”?
json
leo__52044 分钟前
IEC 104 协议 C 语言实现
c语言·数据库
嵌入式×边缘AI:打怪升级日志1 小时前
全志T113 Tina-SDK 配套工具链开发应用(从Makefile到CMake再到Autotools)
linux
嵌入式×边缘AI:打怪升级日志1 小时前
全志T113嵌入式Linux开发环境搭建(VMware + Ubuntu 18.04)详细步骤
linux·ubuntu
云栖梦泽2 小时前
Linux内核与驱动:14.SPI子系统
linux·运维·服务器·c++
啧不应该啊2 小时前
Day1 Python 与 C 的类型区别
c语言·开发语言
yipiantian2 小时前
在Claude项目中实现跨目录访问Skills
linux·运维·服务器
cen__y3 小时前
Linux07(信号01)
linux·运维·服务器·c语言·开发语言