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

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

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

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

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

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

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

相关推荐
陌上花开缓缓归以6 分钟前
linux 内核4.4 内存分配使用分析
linux·运维·服务器
燕落南枝19 分钟前
C 语言学习大总结:从入门到进阶的完整知识体系
服务器·c语言·学习
不会C语言的男孩24 分钟前
libxml2 源码编译与 XML 读取验证(x86 / ARM)
xml·c语言·嵌入式
David猪大卫30 分钟前
【C++修炼】STL容器—模板进阶:非类型模板参数、模板特化、模板分离编译
c语言·开发语言·c++·经验分享·笔记·学习·面试
老当益壮梁奶奶39 分钟前
驱动学习(二):从零开始:驱动工程搭建与字符设备驱动框架详解(基于IMX6ULL)
c语言·arm开发·驱动开发·嵌入式硬件·学习
欢乐的小猪42 分钟前
Linux命令 chmod
linux·运维·服务器
星 海1 小时前
【json】cJSON库解析文件
c语言·json·cjson
Happy_Sharing1 小时前
Windows虚拟机安装ubuntu后,如何在虚拟机Ubuntu系统中访问Windows文件夹
linux·运维·ubuntu
码上有光1 小时前
Linux:信号的认识、信号的产生、信号的保存、信号的处理
android·linux·运维·信号
Zip-List1 小时前
工作小记-pytorch的算子优化: 转gpu核函数 python调c
c语言·c++·pytorch·python·cuda