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

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

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

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

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

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

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

相关推荐
晓蛋7 小时前
c语言指的是什么意思
c语言·编译器·编程开发·集成开发环境·程序实例
未济7 小时前
linux 配置环境变量
linux
傲世仙尊7 小时前
目录即文件-Ext文件系统收尾篇
linux·c语言
譕痕7 小时前
JSONObject与JSONArray封装数据格式区别
java·json
A黄俊辉A7 小时前
uniapp webview中实现 app和内嵌的H5双向通信
vue.js·json
牵猫散步的鱼儿8 小时前
重载、重写(覆盖)、重定义区别
c语言
phltxy8 小时前
C 语言指针:从内存地址到灵活的数据访问
c语言
_艾伦 耶格尔.9 小时前
进程间通信
linux
phltxy9 小时前
C 语言中的数据存储:从类型到二进制位
c语言
Liuqy-059 小时前
Linux IO编程——静态库、动态库
linux