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

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

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

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

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

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

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

相关推荐
Ancelin安心5 分钟前
关于代理的一些网络知识复盘
linux·运维·网络·计算机网络·web安全·ubuntu·网络安全
chenyuhao20248 分钟前
Linux系统编程:多线程互斥以及死锁问题
linux·运维·服务器·c++·后端
Norach18 分钟前
Ubuntu升级opencv版本至4.9.0
linux·经验分享·opencv·yolo·ubuntu·dnn
默|笙18 分钟前
【Linux】进程(6)虚拟地址空间
linux·运维·服务器
linzihahaha20 分钟前
vmware-ubuntu 虚拟机共享文件及复制拖动配置
linux·运维·ubuntu
若风的雨25 分钟前
ARM Trusted Firmware 启动流程:从汇编到 C 语言的渐进式初始化
c语言·汇编·arm开发
韩金群27 分钟前
centos离线安装配置clickhouse
linux·clickhouse·centos
HIT_Weston30 分钟前
70、【Ubuntu】【Hugo】搭建私人博客:新建站点
linux·运维·ubuntu
Danileaf_Guo36 分钟前
让Ubuntu服务器变身OSPF路由器!实现服务器与网络设备直接对话
linux·运维·服务器·ubuntu
HalvmånEver39 分钟前
Linux:库制作与原理(三)
linux·运维·服务器