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

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

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

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

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

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

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

相关推荐
多多想4 分钟前
C++扫盲——为什么C/C++分文件要写h和cpp?
c语言·c++
赖small强12 分钟前
【音视频开发】Linux UVC (USB Video Class) 驱动框架深度解析
linux·音视频·v4l2·uvc
多恩Stone35 分钟前
【系统资源监控-1】Blender批量渲染中的负载、CPU、GPU和进程管理
linux·python
莽夫搞战术36 分钟前
Linux NAS 迁移避坑指南:放弃 chown -R,ID 映射让权限配置秒完成
linux·服务器
好好沉淀40 分钟前
IDEA如何设置以新窗口打开新项目
linux·windows·intellij-idea
大聪明-PLUS1 小时前
C++中变量的声明和初始化
linux·嵌入式·arm·smarc
被制作时长两年半的个人练习生1 小时前
如何调试llama.cpp及判断是否支持RVV
linux·服务器·llama
于是我说1 小时前
Python Requests Session Cookies 与 JSON 文件的存取
python·json·dubbo
赖small强1 小时前
【音视频开发】Linux V4L2 (Video for Linux 2) 驱动框架深度解析白皮书
linux·音视频·v4l2·设备节点管理·视频缓冲队列·videobuf2